The default column heading is the field name. As long as the Caption property doesn't exist, you can just set the field name to the heading you want as you create the query.
If you're talking about changing the headings in a query that already exists, I don't know if you can. I think the Name property of a Field object is read-only if the QueryDef it belongs to has already been appended to the QueryDefs container. You'd have to create a duplicate QueryDef and copy all the Field objects, renaming them as you need to for column headings. Rick Sprague