制限じゃなくて理屈の問題
Control.Resizeの例だとHeight = Widthにしてるんだから高さ変えても横幅に戻されるのは当然でしょ
前回のサイズを覚えておいてどっちにリサイズされたかを判断して
幅を高さに合わせるか高さを幅に合わせるか決める

ただし斜め方向のリサイズが鬼門