This is a feature of Vista themes. The only known way to work around this feature is to go backwards during an update.
Every time you set the progress bar counter to N immediately afterwards set it to N-1.
There's nothing wrong with the Delphi code, it's a feature of the common control.