Для выполнения поставленной задачи, подготовим массив с воможными типами шаблонов, а также сделаем так, чтобы выбранный вид запоминался для следующего посещения. Разместить этот кусок следует перед вызовом компонента, в моем случае в комплексном компоненте catalog/section/ перед вызовом bitrix:catalog.section, в который мы передаем в качестве имени шаблона переменную $template ($APPLICATION->IncludeComponent("bitrix:catalog.section",$template,Array()....)