A force de chercher, j'ai réussi à faire tourner mon programme comme un service windows classique + interface graphique.
La procédure :
S'assurer que le programme peut tourner sur une autre session que sa session courante. Dans mon cas, l'accès ODBC se faisait dans les sources de données utilisateur, j'ai donc du le rajouter également dans les sources de données système.
Pour ajouter un service il faut se procurer les fichiers instsrv.exe et srvany.exe et suivre les instructions suivantes http://support.microsoft.com/defau [...] us;q137890
Une fois que c'est fait, il faut aller dans panneau de config->outils d'administration->services
On cherche le service que l'on vient de crée. (le nom correspond à celui que l'on a tappé sur la console "chemin\instsrv.exe NOMDESERVICE chemin\srvany.exe" ).
clic droit->propriété -> onglet de connexion il faut cocher compte systeme local + autoriser à interagir avec le bureau
Valider et redemarrer.
Voilà ca fonctionne comme je veux.
A force de chercher, firedaemon aurait certainement permis la même chose mais bon, je pensais pas mettre autant de temps donc je m'attarderais pas plus sur le sujet.
En espérant que mes explications aident la prochaine personne en galère avec les services
Bonne soirée