Я думаю, что вам придется что-то делать на более высоком уровне в стеке - HTTP не имеет возможности ретранслировать часть среднего потока ответа. Как только клиент делает HTTP-запрос, он должен получить полный HTTP-ответ, прежде чем он сможет сделать другой запрос. HTTP-чанки в основном для облегчения поддержки соединений без необходимости заранее вычислять длину содержимого ответа.
Если мы говорим здесь о клиенте и сервере (что, я полагаю, так и есть, поскольку этот вопрос не имеет смысла, если вы говорите о браузере), то, возможно, один из способов сделать это будет для сервера нарезать файл на части и заставить клиента запрашивать каждый фрагмент файла по одному, используя соединение keep-alive. Если вы отправите обратно контрольную сумму для каждой части в ответе (то есть в заголовке ETag), вы можете рассчитать контрольную сумму на клиенте, чтобы убедиться, что вы получили правильные байты. Если контрольная сумма не совпадает, просто передайте клиентский запрос снова.