Я думаю, что ASP.NET допускает одно одновременное выполнение страницы за сеанс, и я не знаю ни одного способа настроить это иначе.
Это не очень хороший обходной путь, но он может помочь, если вы переписали значение ASP.NET_SESSIONID в файл cookie запроса в Application_BeginRequest (в global.asax). Конечно, вам потребуется аутентификация другим способом. Впрочем, я этого не пробовал.
Другим способом будет запуск отдельного потока для процесса загрузки, но вам нужно будет найти способ, как это можно сделать без закрытия рабочего потока его ресурсами.
Могу я спросить, есть ли причина, по которой вы просто не используете HttpResponse.TransmitFile?