Вы можете использовать GridView с TemplateFields. В зависимости от настроек вы показываете или скрываете столбцы. Здесь вы найдете документацию TemplateField .
EDIT: еще один элемент управления, более гибкий, чем Repeater, - ListView
Если вы хотите использовать Repeater Control, вы можете использовать заполнители для включения и выключения отдельных столбцов. Просто поместите каждый столбец в PlaceHolder и включите и выключите видимость. Вместо PlaceHolder вы, конечно, можете также использовать UserControl.
РЕДАКТИРОВАТЬ 2: Решение с PlaceHolder может выглядеть следующим образом:
<ItemTemplate>
<tr>
<asp:PlaceHolder Visible="<%# IsSalaryVisible %>" runat="server">
<td>
<asp:Label ID="lblSalary" runat="server" Text='<%#Eval("Salary")%>' ToolTip="Salary"></asp:Label>
</td>
</asp:PlaceHolder>
<asp:PlaceHolder Visible="<%# IsNameVisible %>" runat="server">
<td>
<asp:Label ID="lblSalary" runat="server" Text='<%#Eval("Name")%>' ToolTip="Salary"></asp:Label>
</td>
</asp:PlaceHolder>
</tr>
</ItemTemplate>