The crazy thing about progress bars is that their very presence slows down the process that they are informing you about. I use one in my new game for the process of loading file & folder names inside a given folder. But the process is much faster if I don't display the progress bar.
You're probably doing it wrong then. You shouldn't be updating the progress bar hundreds of times a second - only update and display it once there has been sufficient progress for it to display something new, and if the task is sufficiently long that it deserves a progress bar to begin with. Also, you probably don't need pixel accuracy on a progress bar - even the old Windows 95 progress bars were good at what they did and had sufficiently large discrete steps that it was only necessary to redraw them a handful of times:
Inside the code logic, you should only be updating a variable called "progress" or something like that, then redraw the progress bar component if drawing it would cause the currently displayed progress to change