No, cuando llamas a URLDownloadToFile sin implementar la interfaz IBindStatusCallback funciona de manera sincronica y por eso se te freeza el proceso. Lo que tenes que hacer es implementar el callback o utilizar sockets/usercontrols.
Un double buffer es super simple, dibuja lo que quieras en un hdc que puede ser un picturebox y despues volcas todo a tu main hdc (podes usar bitblt) en este caso el form eso va a quitar el flicker.
Si, la verdad yo lo encontre bastante util por el tema de que no necesitas instalar nada para correrlo, el tamano de la libreria y la velocidad. Personalmente le estoy dando bastante uso.
Holi Holas, estaba trabajando en este proyecto y esta bastante decente en este punto asi lo posteo para el que le interese. Es un wrapper para SQLIte3 hecho enteramente en VB6.