ll problema deriva dal fatto che quella API non è asincrona e il VB6 è single threaded.

Quindi non risolverai mai in quel modo.

Il consiglio è di usare la API

URLOpenPullStream
http://msdn.microsoft.com/en-us/library/ms775128(v=vs.85).aspx

che è asincrona.

P.S. Nella variabile localFileName scrivi c. ma dovrebbe essere c: