The problem is that both the picture display and the waiting are being done on the same thread - so the Paint event which actually displays the image isn't handled until after the wait is also continued.
There are several ways round this, but the simplest is to create a timer instead of waiting, and when its Tick event fires, display you progress bar.
However, if you are using a progress bar, then probably you are planning to do something that takes time and keeping the user informed - and you will have the same problem then as the progress bar will not be updated while your long running event is in progress.
So instead, use a
BackgroundWorker[
^] to perform your long running task, and use it's Progress facility to display and update your ProgressBar - your initial delay can slow that thread and the Progress event displays the Progress bar on the first update.