Как по мне, самый безболезненный в плане верстки и расчетов способ: взять либу типа Vue и крутить массив со значениями + transition-group (для появления\исчезновения td-шек), либо то же самое, но на ванилке накатать (ни один фреймворк не может больше того, что умеет сам JS, просто там уже накатаны те подходы и методы, которые ты не захочешь реализовать сам).
При таком подходе не придется считать размеры относительно друг-друга, хотя при очень разном контенте таблица будет прыгать по высоте. Впрочем, она в любом случае будет прыгать. Можно смягчить чем-то в духе свойства css transition: all .5s
.