Não existe o HTTP Steaming. Há um par de hacks para simulá-lo no entanto.
Primeiro e mais antigo está usando o cabeçalho Range:
para especificar o pedaço do arquivo que o cliente deseja. Não há nada que impeça um script PHP de enviar o pedaço correto baseado nesse cabeçalho, ele apenas precisa ler o cabeçalho e retornar o cabeçalho de resposta apropriado com os dados do arquivo.
Em segundo lugar está usando um módulo de servidor de algum tipo que entende o formato do arquivo que está sendo transmitido e fornece a quantidade "correta" de dados por qualquer intervalo de tempo. É isso que o módulo mp4 do ngninx está fazendo. Pode ser possível programar um script PHP que descubra a taxa de dados do arquivo e, em seguida, envie o arquivo a essa taxa, mas eu não sei de nenhum, e a programação seria difícil.