I'm wondering if you're able access the row heading names in a crosstab table.
We have a "freeform" Products table that contains entries ProductNumber, ProductProperty, ProductPropertyValue as follows:
table products
** ProductNumber
>>> 1,2,3,4, ...
** ProductProperty
>>> "property1"...