Как правильно применять стили CSS к целым колонкам таблицы без классов и nth-child?
Почему вы считаете nth-child костылями? Они как раз созданы для этого.
Применить некоторое оформление можно с помощью тега col.
Подробнее с примером здесь.