PHP vive sul server, finché non ha finito di generare la pagina (leggasi: finché non ha terminato la sua esecuzione), questa non viene spedita al client, quindi così niente stampe intermedie.
Devi usare la funzione ob_flush(), vedi il primo esempio di codice, è praticamente il tuo modificato.