If root runs 'xwmconfig' is gets set for all users. But then each user can run 'xwmconfig' themselves to select their default GUI. Plus there are other ways of working around having to use 'xwmconfig' at all, but it's the most direct and easiest way.
Oh, missed part 2. 'startx -- :1' will start a second xsession on tty8 - and so on.
Yet another edit because maybe more commentary would be helpful: 'startx' is a wrapper for 'xinit' but the key thing you want to configure is ~/.xinitrc. What xwmconfig does in simplest terms is move an /etc/X11/xinit/xinitrc.{WM} to ~/.xinitrc. The problem with that (if I understand it correctly) is that any changes made to the users ~/.xinitrc will be lost when they switch GUIs again - a fresh new system-wide xinitrc.{WM} gets copied in and overwrites it. Root can make the edits to xinitrc in the /etc directory but that's kind of pain. I think it's easier just to create an ~/.xinit and put your own xinitrc.{WM}s there and use a simple shell script to symlink ~/.xinitrc to one of them when you feel like it.
But anyway - xinitrc is the run control file for xinit, which startx serves as a wrapper for. And the personal version of that is what you'd mainly want to deal with.