Option 1: Use a portal in the header. This requires setting up tables, table occurrences and relationships but depending on the data already in your system, but can be made to work.
Option 2: Use a Field loaded with data from an ExecuteSQL query
Option 3: if Cat 1, Cat 2, Cat 3 are find criteria, you can set up a system where your criteria is copied to a global field and you put the global field into the header. A script could also loop through your data to copy info from your found set into such a global field in the header.
The List of Summary field type should also be considered as well.
I thought about that, but would think that it would produce a lot of duplicate entries in this context....