Lamento revivir el tema, pero se me ocurre una cosa. Cuando se vaya a bajar el archivo, leer el tamaño real descargable, y almacenarlo en un string. Luego, comprobar el tamaño LOCAL del archivo y a partir de la comparación con el contenido del string, establecer un mínimo y máximo a la ProgressBar y un If para el tamaño de aumento por cada Kilobyte.
Saludos!