I saw these questions Recommendations for executing .NET HttpWebRequests in parallel in ASP.NET and Async.Parallel or Array.Parallel.Map from about a year ago and was wondering
Web requests are not suitable for TPL, since they are IO, not processing. You already had all the necessary infrastructure in place since .Net 2.0: BeginGetResponse and BeginGetResponseStream. Keep a lid on the number of outstanding requests (~200 is a good consumer OS, ~2000 is for server flavours, after accordingly tweaking the TCP parameters, specially TcpNumConnections) and make sure you adjust the ServicePointManager.DefaultConnectionLimit.
Trying to achieve high scale and high bandwidth/throughput by simply throwing synchronous IO calls on tens and hundreds of tasks via TPL will get you nowhere fast.
You might find this discussion relevant:Async instead of Parallel