Вы, вероятно, правы, что прокси - единственный способ обойти это. BITS использует запрос HEAD, чтобы получить длину контента и решить, хочет ли он разделить загрузку файла. Затем он выполняет запрос GET для фактического получения файла - иногда в целом, если файл достаточно мал, в противном случае с заголовками диапазона.
Если вы можете использовать прокси-сервер или другой трюк, чтобы дать ему какой-либо ответ на запрос HEAD, он должен отклеиться. Даже если запрос HEAD подделан с фиктивной длиной контента, BITS перейдет к GET. В подобном случае вы можете увидеть повторяющиеся запросы GET, потому что, если первый запрос GET возвращает длину содержимого, превышающую исходный запрос HEAD, BITS может решить: «О, чёрт, я все равно лучше разбить на части».
Учитывая это, я немного удивлен, что он недостаточно умен, чтобы восстановиться после ошибки 403 в запросе HEAD и все же перейти к GET. Каково реальное поведение работы? Вы пробовали смотреть его с помощью битсадмина / монитора? Если задание находится в состоянии временной ошибки, оно может делать это в течение примерно 20 минут, а затем в конечном итоге восстанавливаться.