You can't cross-tab to give heirarchical headings asaik. However, you can build a query in such a manner that the data will be presented as you want it. The idea is you manufacture a new column which will represent the column he headings.
Here's an example cross-tab query:
TRANSFORM Sum(Costs.Cost) AS SumOfCost
GROUP BY Costs.ProjectNo
PIVOT CStr(Left([Date],5)) & " " & [CostElement];
Your column headings will look like:
9/9 Labor....9/9 NL.... 9/9 ODC....9/16 Labor....9/16 NL.... 9/16 ODC....
My query used a table called Costs with fields:
You can play around with the CStr(Left([Date],5)) & " " & [CostElement] bit to get it to look as neat as possible.