The dummy record is the easiest way to do it that I've found. You can also do it with the XML/XSLT features but that's much more difficult to explain. A third way would be to merge it into an excel template that stores your header row. There are plugins like 360works Scribe that do this, and other native ways as well.
I've been asking for field level aliasing for years but it's still not a feature that's in filemaker. Fortunately the creation of the header record is pretty straightforward and easy to achieve.
You could collect your records to a $$variable as a list and add the column headers as a first line to it, populate a virtual list (if not common, search for "VirtualList") with it and export from the virtual list table....
It looks like you were on a good path, but I can't see if your question was finally answered.
I've just released my own (generic) XSLT template that includes the ability to rename field headers when you covert your data to Excel format. (It might be overkill, and it might be a little complicated at first, but if you are still searching for a solution, you might want to give it a try -- its free).
Feel free to take a look at my solution and use the parts that are helpful to you.
The XSLT file can be found in my announcement. I'm calling it FMP2XLS.
If this fixes your problem, please mark it as the "correct answer" to your question.
Thanks Doug, I'll give it a look.