Вы должны вызывать его асинхронно, чтобы обновить ход загрузки / выгрузки.
HttpWebRequest имеет такие методы, как
public override IAsyncResult BeginGetResponse(AsyncCallback callback, object state);
public override IAsyncResult BeginGetRequestStream(AsyncCallback callback, object state);
принятие асинхронных обратных вызовов.