Nice!
I put together a version without using a repeater, because when I tried that route, the objects got into an error state too easily. (Not that this solution is bulletproof, either)
This avoids tons of conditions and performs fairly well in non-IE. The explanation is in the file. (There are 4 pages.)
File: Horizontal_DragandDrop_reorder.rp (254 KB)