You are in for a world of hurt.
But here is how to get started:
Form f = new Form();
f.ResizeEnd += f_ResizeEnd;
f.MdiParent = this;
f.Show();
void f_ResizeEnd(object sender, EventArgs e) {
MdiClient mc = this.Controls.OfType<MdiClient>().First();
Form f = sender as Form;
if (f.Right >= mc.ClientSize.Width) {
f.SetBounds(mc.ClientSize.Width / 2, 0,
mc.ClientSize.Width / 2, mc.ClientSize.Height);
}
}