Прогресс выполнения php foreach в ajax запросе?
По средством создания постоянного соединения и отправкой оповещений через него (comet).
Если прогресс реально очень долгий, можно запускать второй процесс, который бы опрашивал текущий статус обработки. Пример такой реализации был на хабре https://habrahabr.ru/post/153731/ . Там демо не работает, вот демо по этой же идее: www.plus2net.com/php_tutorial/progress-bar2-demo.php 
Ну и где-то видел заминусованный вариант, где аякс выдавал дивы-полосочки общего прогресса и флашил их. Вот, нашёл: stackoverflow.com/questions/20453015/progress-bar-... Дурная, но идея.