This sounds easy to do.
First, note that every hardware is called something different, so its easy to select what hardware to use. Its also possible to launch 2 X servers on the same computer, "startx -- :0" will start the first server, "startx -- :1" will launch the second (the first "startx" can just be "startx").
Next, configure the Xorg configuration. Create sections for all of your devices, leave the 'Layout' section out, this will produce a configuration that shouldn't really work with a plain "startx", or at least not very good. When starting X, you will have to select what devices should be used. Example:
Code:
startx -- -keyboard key1 -pointer mouse1 -screen screen1 :0
that will start the first X server, key1 being a keyboard identifier, same for all the other names (screen1, mouse1).
That should allow you to do what you want i think.
EDIT: yes, two different accounts can be active, each with their own server. GDM, im not sure, the only reason it might not is if GDM acts like a daemon-server, preventing others from spawning, but since its job as a display manager is to manage displays, it should be possible to have multiple instances running.
Yes, two different cards are required, im not sure how to get two different X servers to use the same card, perhaps by running three servers, with xvnc or something to output the two servers onto the third which controls the hardware (and uses xire-whatever its called to create a single screen, in which the two xvnc's run in such a way that they each occupy a different monitor fully).