you can maintain the column's list in dtaabase and fetch with the help of additional parameter (says reportID ) in stored proc. see below
table defintion (ColumnID, ColumnName , reportID)
table will have
1, 'EmpName' , 45 (reportID)
2, 'salary' , 45
So NOw with the help of additional param in SP , you cna retrieve the column list and use in your dynamically.
column addition can be done in above whenever developer ask
I work only to learn Sql Server...though my company pays me for getting their stuff done;-)