Если вы не хотите ничего покупать, а TableLayoutPanel недостаточно хорош для ваших нужд (что может означать, что у вас есть особые потребности), вы всегда можете создать компонент для управления изменением размера, который может работать все ваши формы. (немного похоже на .net resize, как вы описали выше)
Вы также можете принять во внимание время, которое потребуется вам для создания чего-то такого же, что и .net resize. Если время и стоимость кажутся схожими, в зависимости от ваших сроков, вы можете предпочесть кодировать их самостоятельно, чтобы иметь полный контроль.