It's been a while since I did any DelphiX, I do remember Draw Rotate being a heavy function though.

I'd wrap the draw rotate function in another function which has a buffer surface.. DrawRotate the sprite onto this surface when the angle changes and just blit the surface the rest of the time.
If you're rotating all the time, it'll be slower, but if you rarely change the angle, you'll see a massive performance gain to just using DrawRotate.

*Obviously, you'll have to supply the previous buffer and previous angle to the function and let it decide to either use the prevoius buffer or render a fresh image with DrawRotate.