Après mes recherches googlelisantes j'en suis arrivé à la conclusion qu'il faut lancer un deuxième serveur X

C'est réalisés dans mon cas via le fichier gdm.conf (gdm est le gestionnaire graphique de session que j'utilise).

[servers]
#These are the standard servers. You can add as many you want here and they will always be started.
#Each line must start with a unique number and that will be the display number of that server. Usually just
# the 0 server is used.

0=Standard
1=eStandard <-------------------- Nouveau server X

[server-Standard]
name=Standard server
command=/usr/X11R6/bin/X -audit 0
flexible=true

#To use this server type you should add -query host or -indirect host to the command line
#Definition of the standard X server.

[server-eStandard] <--------------- Section Nouveau Server X
name=eStandard server
command=/usr/X11R6/bin/X -audit 0
flexible=false

Le fonctionnement est le suivant :

Après le boot, le gestionnaire de session apparait 2 fois (vt7 et vt8).

On peut switcher les displays avec les touches CTRL+ALT+F7 ou F8. Je me logue, je lance mes applis et je fais un CTRL+ALT+F7 ou F8 et le second utilisateur peux ouvrir sa session sans tuer mes applis en cours.

Remarque : en console il est possible de faire "la même chose" en lancant ses commandes avec la commande nohup. nohup execute la commande desiree en ignorant les signaux HANGUP (deconnexion), avec une priorite d'ordonnancement incrementee de 5, afin que cette commande continue a s'executer en arriere-plan apres la deconnexion de l'utilisateur.

http://www.epita.fr/docs/man1/nohup.1.html