Il crontab è un processo che avviene sul server per schedulare dei comandi.
La serie di comandi lanciati da crontab è un cronjob.
Per configurare il crontab devi quindi avere accesso alla macchina come amministratore.
Una routine che puoi configurare con crontab è anche l'apertura di una pagina php, il cui script esegue la funzione mail() per i destinatari interessati, ma ci sono soluzione più appropriate che permettono di usare il sendmail di Linux stesso anziché php come tramite per l'invio di mail.
Ma se usi un DB non so se questo possa convenirti.
Altra soluzione, meno stabile ma comunque diffusa, è quella di crare una pagina html che ogni tot secondi abbia un refresh, con un parametro GET che si autoincrementa ad ogni refresh per l'operazione seguente (ad esempio la successiva lista di destinatari per l'invio della mail).
Puoi lanciare il refresh con un metatag o con un codice Javascript.
Ovviamente una mancata risposta HTTP del server, oppure una discontinuità della linea ADSL bloccherebbero il processo. Potresti allora affidarti ad Ajax, in cui puoi anche verificare il responso HTTP delle chiamate asincrone, e rinviare la richiesta in caso di errori come il 404, oppure stabilire un timeout entro il quale se non si riceve un responso la richiesta venga annullata e ne venga lanciata una nuova.
Altre possibili soluzioni lato client sono di affidare il refresh ad un browser; se in questo caso si avesse un mancato caricamento nel refresh della pagina, il client lancierebbe ugualmente un'altra chiamata http che continuerebbe il job.
Cambiando ancora campo potresti studiare (o farti produrre) una soluzione di un'applicazione dedicata lato client, come per esempio Visual Basic, che può gestire le chiamate http in modo abbastanza completo, e schedularle ogni determinato timeout.