Du könntest den Taskplaner dazu bemühen. Das geht sogar auf der Kommandozeile mit Hilfe von at.exe. Über den Parameter /time kannst du dann zu einem bestimmten Zeitpunkt ein Programm ausführen. Bedingung ist, dass der Dienst für den Taskplaner läuft.
Das ist jetzt zwar keine Delphi-Lösung, aber man kann das Kommando ja per Delphi absetzen
Bedenke: Das Programm läuft dann mit Systemrechten (eben mit den Rechten des Dienstes). Ist beim Herunterfahren nicht unbedingt ein Problem, aber ich sag es einfach mal dazu.