It may be inconsistent between Redis releases, operating system updates, and on different machines, so I'd be careful about that. Redis makes no guarantee about the order, so it's very likely that somewhere along the lines this could break for you.
One thing you might want to try is to just store all of the values together as one big compound string. This may or might not work for your use case though so you'll have to give it some thought.
The basic idea would be to store things in a key with a series of values with a separator character. I.e. "value1:value2:value3" you could then do the splitting in your client app, or write a lua script to pull out the value, do the splitting on the server, and send it back in the same form as HGETALL.
Another option if that doesn't work, would be to just pipeline or lua script a series of individual HGETS so that you'll pull out all the values in a deterministic order. If you go with the lua script approach, you'd be able to hard code the field names into the script, and you wouldn't be paying much of any extra network overhead for the extra commands. If you're current bottleneck is network IO rather than cpu, this approach might be not have any noticeable performance differences from your current approach.