Apparently it is possible to do this using cygwin ports, as can be seen in screenshots. I followed this how-to to get apt-cygports set up, and I used it to install gnome-session.
This how-to supposedly gives the commands needed to run Gnome or KDE, but whenever I try to run Gnome, a blank X-window pops up and then quickly disappears.
Here is the terminal output:
$ startx /usr/bin/dbus-launch gnome-session
xauth: file /home/jpthomps/.serverauth.4168 does not exist
Welcome to the XWin X Server
Vendor: The Cygwin/X Project
Release: 1.10.3.0
OS: Windows 7 Service Pack 1 [Windows NT 6.1 build 7601] (WoW64)
Package: version 1.10.3-12 built 2011-08-22
XWin was started with the following command line:
/usr/bin/X :0 -auth /home/jpthomps/.serverauth.4168
(II) xorg.conf is not supported
(II) See http://x.cygwin.com/docs/faq/cygwin-x-faq.html for more information
LoadPreferences: /home/jpthomps/.XWinrc not found
LoadPreferences: Loading /etc/X11/system.XWinrc
LoadPreferences: Done parsing the configuration file...
winDetectSupportedEngines - DirectDraw installed, allowing ShadowDD
winDetectSupportedEngines - Windows NT, allowing PrimaryDD
winDetectSupportedEngines - DirectDraw4 installed, allowing ShadowDDNL
winDetectSupportedEngines - Returning, supported engines 0000001f
winSetEngine - Using Shadow DirectDraw NonLocking
winScreenInit - Using Windows display depth of 32 bits per pixel
winFinishScreenInitFB - Masks: 00ff0000 0000ff00 000000ff
Screen 0 added at virtual desktop coordinate (0,0).
MIT-SHM extension disabled due to lack of kernel support
XFree86-Bigfont extension local-client optimization disabled due to lack of shared memory support in the kernel
(II) AIGLX: Loaded and initialized /usr/lib/dri/swrast_dri.so
(II) GLX: Initialized DRISWRAST GL provider for screen 0
winPointerWarpCursor - Discarding first warp: 637 478
(--) 5 mouse buttons found
(--) Setting autorepeat to delay=500, rate=31
(--) Windows keyboard layout: "00000409" (00000409) "US", type 4
(--) Found matching XKB configuration "English (USA)"
(--) Model = "pc105" Layout = "us" Variant = "none" Options = "none"
Rules = "base" Model = "pc105" Layout = "us" Variant = "none" Options = "none"
winBlockHandler - pthread_mutex_unlock()
winProcEstablishConnection - winInitClipboard returned.
winClipboardProc - DISPLAY=:0.0
winClipboardProc - XOpenDisplay () returned and successfully opened the display.
xinit: XFree86_VT property unexpectedly has 0 items instead of 1
xinit: connection to X server lost
waiting for X server to shut down winClipboardProc - winClipboardFlushWindowsMessageQueue trapped WM_QUIT message, exiting main loop.
winClipboardProc - XDestroyWindow succeeded.
winClipboardProc - Clipboard disabled - Exit from server
winDeinitMultiWindowWM - Noting shutdown in progress