Just a little while ago, I encountered the same issue. I discovered that using the animate suggestion was not ideal (jerky, sluggish, ultimately worse), but the jQuery plugin provided with it was slightly better. However, the extra effort it required wasn't really worth the minimal improvement.
In my specific case, I had a scrollable div containing a large image. The larger the image, the more noticeable the reflow issue became. By temporarily hiding the div before adjusting the scroll properties and then showing it again right after, I managed to significantly enhance the situation. This method allows IE to skip re-rendering the contents after the initial property is set, instead waiting until the element becomes "visible" again (after both properties are set).
I didn't experience any flickering in any major browser versions during testing (which was my primary concern). I tested it on Firefox 4, Opera 11, Chrome 10, IE 8, IE8 Compatibility mode, and Safari 5.
Using jQuery:
var my_pane = $('#my_scroll_pane');
my_pane.css( 'visibility', 'hidden' );
my_pane.scrollTop( 100 ).scrollLeft( 100 );
my_pane.css( 'visibility', 'visible' );
With regular JavaScript:
var scroll_pane = document.getElementById('my_scroll_pane');
scroll_pane.style.visibility = 'hidden';
scroll_pane.scrollTop = 100;
scroll_pane.scrollLeft = 100;
scroll_pane.style.visibility = 'visible';
UPDATE: There's some noticeable flickering in FF3.6. If anyone has alternative suggestions without resorting to browser sniffing, please feel free to share them.