Согласно документации jqGrid , colNames
нельзя изменить после создания сетки.
Однако вы можете смоделировать изменение имени столбца, используя несколько столбцов. Затем вы можете скрыть все из них, кроме одного, который будет показан пользователю. Когда пользователь выбирает другой, просто поменяйте местами в выбранном столбце. Например, если допустимыми столбцами являются [A, B, C, D], вы можете начать с показа только A. Затем, если пользователь выберет C, скройте A и покажите C. Основной недостаток этого подхода заключается в том, что вам нужно будет скопировать однако одни и те же данные для многих столбцов.
Обновление
Согласно ответу Галичева, вы можете использовать метод setLabel для переименования заголовка столбца.