The call you need is SetCursor, which returns the current cursor. After your loop, you'd call SetCursor again, using that returned cursor.
I vaguely remember something about the cursor getting reset to the arrow if you "pump the message queue," so you might need to reset it after doing that.