non l'ho testato, potrebbero esserci anche dei banali errori di sintassi, ma con questo ti fai un idea di come fare:
codice:
$start = mktime(13, 30, 0, 0, 0, 0); // valore in secondi 
$end = mktime(20, 00, 0, 0, 0, 0); // valore in secondi

$intervallo = 30*60; (30 minuti per 60 secondi);

while($start < $end) {
  echo date('H:i:s', $start);
  echo "
";
  $start += $intervallo;
}