Un service est "juste" une application normale qui se lance à chaque démarrage.
La seul chose est la manière dont elle est lancé : un service est lancé dans un environnement protégé où il ne peut pas interagir avec l´utilisateur (ou en tout cas pas directement), sauf au travers d´appel système.
Il n´y a pas beaucoup d´intérêt à faire un service "à la main" plutôt qu´avec les modèle de Delphi ou de Visual Studio. Un service est donc un programme "normale" qui va faire quelque chose de particulier (par exemple ouvrir un port et servir de serveur web, ou quelque chose comme ça), plus quelque bout de code sans aucun intérêt qui gère les fonctions de démarrage ou d´arrêt (c´est ça que VS ou Delphi fait automatiquement, tu peut l´écrire toi même, mais de toute manière, une fois que tu l´auras fait une fois, tu feras toujours un copier/coller de ce que tu a fait avant, car c´est vraiment inintéressant comme code) et enfin des appels systèmes tordu pour enregistrer le service auprès de l´OS (ça aussi c´est fait tout seul par un bon IDE et ça n´a pas, je pense, d´intérêt).
Bref, écrire un service windows c´est comme écrire un programme normale, mais qui va s´exécuter dans un environnement un peu différent. Le reste (la partie spécifique aux services) est faites automatiquement généralement, et même si tu peut regarder comment ça marche (un petite recherche avec les mots "créer un service windows" sur google te montrera tout ce que tu as besoin de savoir), je le répète ce n´est pas très utile, car la bonne méthode pour créer un service c´est d´utiliser les composant fait pour ça que le système mets à ta disposition. Le faire àla main produirait quelque chose d´une qualité forcément inférieur, qui ne pourrait pas forcément être mis à jour aussi facilement.
Pour ta dernière question, l´idée est qu´un service est indépendant d´un utilisateur : si aucun utilisateur n´est connecté à l´ordinateur, les peuvent continuer à tourner, et donc par exemple, un serveur web continue de fonctionner, et un antivirus continue de protéger l´ordinateur. De même, un service est mieux protégé du reste du système. Donc un antivirus sera plus difficile à désactiver pour un virus s´il s´agit d´un service.
Pour un virus, je ne suis pas sûr qu´ils emploie ce genre de stratégie. Si c´est le cas, l´avantage est le même (le service est plus dur à désactiver), mais en contrepartie c´est bien plus dur à installer, il faut des privilèges d´administrateurs assez élevés pour pouvoir le faire.
Bref, je considère que ce n´est pas un sujet très passionnant, mais si ça t´interesse regarde ce qu´en dit la MSDN :
http://msdn2.microsoft.com/fr-fr/library/y817hyb6(VS.80).aspx (il te faudra VisualStudio (que tu peut télécharger en tant que lycéen après t´être inscrit sur le site de MSDNAA)), qui décrit les mécanismes en jeu.