Kris, you can use some Perl script in a constructed list to assist with this problem.
I'll use a simple example. You will just need to exchange the variable names and list names.
Let's say your 4 competitors are captured in Q1-Q2-Q3-Q4 and these are O/E question types.
Create a parent list as follows and call it Q5ColList...
Items 1-2 are fixed and will always display Competitor A and Competitor B. Items 3-4-5-6 represent the answers from Q1-Q2-Q3-Q4 respectively.
The constructed list will look like this ...
Note: It will use Q5ColList as the parent list.
Begin Unverified Perl
Use this constructed list in your grid question as the column list.
Items 3-4-5-6 will only appear if their respective questions have an answer of 1 character or greater.
And depending on your variable names, we can tidy up the script with a for loop. But the above will work just fine.