Ben le "probleme" est que php est "servi" via un serveur web, hors ce derniers fonctionnent a la demande.
Donc si tu ne faits pas de demande, ton script php ne va pas demarrer.
Neanmoins si tu peux te connecter au serveur, tu pourrais lancer ton script php comme un "script" qui lui ne serait pas limite par le temps (a condition de modifier les connexions qui vont bien).
Il existe un service sur le net qui te permet de faire des "taches planifies". En gros tu rentre une url, et leur serveur va fait une requete dessus au moments que tu le veux. Helas il y a une limite qu'il me semble etre d'1 fois par heure maximum. Donc non aproprie a ton cas.
Personellement je pencherais plus sur une meilleure programmation de ton programme Delphi. S'il a tendance a planter, alors c'est qu'il doit y avoir un gros probleme quelque part. Evidement reste le probleme de la fermeture inopinee effectue par un eventuel utilisateur.
A la limite ce que tu peux faire c'est ecrire dans un champ de ta base l'heure de la requete. Ensuite admetons que ca soit ton programme delphi qui mete a jour se champ toutes les 5 minutes.
Lors du redemarrage de ce dernier tu controle ce champ. Si la difference entre la valeur du champ et l'heure actuelle depasse une certaine valeur ET que la valeur est a 1 (ce qui voudrait dire que ton programme a plante), alors tu la mets a 0.
Evidement cette demarche n'est aproprie que dans le cadre d'un programme "serveur" ou "daemon".