Я бы установил процентную ширину каждого столбца просто в качестве ориентира. Установите это только один раз на TH каждого столбца. Браузер по-прежнему будет корректировать столбцы в соответствии с содержанием, если необходимо, но столбцы будут оставаться на месте более последовательно.
Далее, я бы никогда не поместил css "пробел: сейчас" где-нибудь на этом столе. Длинное описание не должно нарушать макет таблицы, оно должно правильно обтекать несколько строк и быть читаемым, если вы установите ширину каждого столбца в соответствии с типом данных. Точно так же я бы сохранил использование (неразрывных пробелов) для дат, времени и чисел и позволил бы переносить текст.
Кроме этого, я делаю это на своей работе на диальной основе, и есть время, когда вам нужно прекратить говорить, что браузер должен сделать что-то, для чего он не предназначен. Содержание должно течь и адаптироваться. Блокировка ширины столбца в пикселях - это 99,9999% случаев плохая идея.
PS: Если вам действительно, действительно, нужно заблокировать столбцы, единственное известное мне решение, которое работает с CSS2 и для всех браузеров, - это использование изображений. Вы можете вставить прозрачное gif-изображение размером 1px в каждый столбец и, считая в заполнении ячеек (TD), установить ширину пикселя для каждого изображения (IMG), а не для столбцов (TH / TD). Вы могли бы спрятать тех, кто в TH, например. Вы можете оставить изображения шириной 1 пиксель и установить ширину в процентах для TD, а при открытии новой строки вы получите ширину каждого столбца минус TD Padding и установите для него соответствующее значение IMG. Я не пробовал! Я просто знаю, что во многих проектах, над которыми я работал, я использовал маленькие gif-изображения, чтобы, например, зафиксировать минимальный вертикальный интервал между столбцами.