Use a timer to kick in each 1 (or 5) minutes. In the timer callback, loop trough the urls you need to check, and verify if they are due to be checked (as you put in the comment, they will have different sync times). You can prepare a proper structure to hold the urls and their timeouts, as well as the last time they since.
If an url is OKed to sync (it's time has elapsed), start an async HttpWebRequest to fetch it. That way, you offload all the receiving part to a threadpool thread, so it does not affect your main timer callback thread.
Be careful - if you do a heavy processing on the responses, you might want to start regular thread in the HttpWebRequest callback to make the additional processing, or implement some kind of queue, so you free the threadpool thread as soon as possible.
Here is a good explanation how to make async requests: http://www.devnewsgroups.net/group/microsoft.public.dotnet.framework/topic23172.aspx
You can google for more examples as well, but this is a good start.