no, not possible, Crystal reads from a template, and you can't change the template. If the number of columns is known, you can work around it, but it is truly dynamic and an infinite number of columns might be displayed, you might want to try rewriting the stored proc and making the report a cross tabs report.
I haven't used a cross tabs, but if it works like a matrix report in Reporting Services, it might just fit the bill.
Alternatively, can the stored proc be rewritten to return rows of data with names in a column, instead of columns named after the name?