Thanks Daniel, the internal routine seems to be what I want, as its time is comparable to Expand. And it is parallelized? This is very nice work. Can I ask if it is recursive or distributed? I'd appreciate any references where I can read about it.
Two things we noticed were that ExactQuotient sometimes uses more threads and gets better speedup than Expand, so it may be possible to improve Expand, and Factor doesn't seem to use the parallel algorithms which is something to consider if you haven't already.
f = Expand[ (1+x+y+z+t)^30+1 ]; g = f+1; AbsoluteTiming[ p = Algebra`IPExpand[ f g ]; ] AbsoluteTiming[ q = Algebra`IPExactQuotient[ p, f ]; ]
We were also excited to see some of the other core algorithm improvements in Mathematica 9. I think you have a very strong release here. All the best in the new year :)