I don't recommend modifying a service's LoadOrderGroup, but it can be done with sc.exe from the command line.
C:\>sc config /?
DESCRIPTION:
Modifies a service entry in the registry and Service Database.
USAGE:
sc <server> config [service name] <option1> <option2>...
OPTIONS:
NOTE: The option name includes the equal sign.
A space is required between the equal sign and the value.
type= <own|share|interact|kernel|filesys|rec|adapt>
start= <boot|system|auto|demand|disabled|delayed-auto>
error= <normal|severe|critical|ignore>
binPath= <BinaryPathName>
group= <LoadOrderGroup>
tag= <yes|no>
depend= <Dependencies(separated by / (forward slash))>
obj= <AccountName|ObjectName>
DisplayName= <display name>
password= <password>
The part you're interested in is group= <loadordergroup>. This says that the list of valid LoadOrderGroups is in a value named ServiceGroupOrder in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control, but I found in Windows 7 that there is no such value. There is a key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ServiceGroupOrder with a value List. The data for List is obviously a list of the groups, in the order that the groups get loaded.
Once again, I wouldn't touch any of these configuration settings unless you're certain you know what you're doing. I have no idea what problems you might cause.
Also, be advised that sc.exe is extremely picky about syntax.
sc config messenger DisplayName= Messenger works.
sc config messenger DisplayName=Messenger will not work.
sc config messenger DisplayName = Messenger will not work.