You can make a UID appear at the top of the list by making it primary. The top UID then gets moved down to the second slot, and likewise, everything else shifts one space downward. It seems as though this "shift" only happens once you save the changes to the key.
If you want to get the correct order, you need to repeat these steps starting with the UID you want showing up second-to-last, all the way until the item you want displayed as the top (first) UID.
The commands for doing this are (the text following $ and gpg> are what you type into the console):
$ gpg --edit-key 0xAABBD62D0BA66C66
gpg (GnuPG) 1.4.16; Copyright (C) 2013 Free Software Foundation, Inc.
# irrelevant output removed #
[ultimate] (1). Mr. Foo Bar <[email protected]>
[ultimate] (2) Mr. Foo Bar <[email protected]>
[ultimate] (3) Mr. Foo Bar <[email protected]>
[ultimate] (4) Mr. Foo Bar <[email protected]>
gpg> uid 3
[ultimate] (1). Mr. Foo Bar <[email protected]>
[ultimate] (2) Mr. Foo Bar <[email protected]>
[ultimate] (3)* Mr. Foo Bar <[email protected]>
[ultimate] (4) Mr. Foo Bar <[email protected]>
gpg> primary
[ultimate] (1) Mr. Foo Bar <[email protected]>
[ultimate] (2) Mr. Foo Bar <[email protected]>
[ultimate] (3)* Mr. Foo Bar <[email protected]>
[ultimate] (4) Mr. Foo Bar <[email protected]>
gpg> save
Then rinse and repeat, working your way backwards from the second-to-last item all the way until the item you want displayed first in the list is the primary UID.