Have you read Kean Walmsley's blog post on this subject? http://through-the-interface.typepad.com/through_the_interface/2007/05/displaying_a_pr.html
Skip through all the pInvoke stuff down to where it says "Update," and he gets into how to work with the managed ProgressMeter class. He throws an Application.DoEvents() into the end of the loop to "allow AutoCAD to repaint." Makes me think maybe MickD was on the right track.