Hola buenas,
lo que puedes hacer es crear un metodo en el formulario hijo que quieres mover con un parametro Point.
Luego, en el formulario principal añades el evento LocationChanged y en este llamas al metodo del form hijo pasandole como parametro la posicion del form padre mas x e y.
Por ejemplo, aquí el formulario hijo estará en todo momento en el lado derecho del padre.
Form Padre
private void Padre_LocationChanged(object sender, EventArgs e)
{
hijo
.setLocation(new Point
(this.Location.X + this.Width,
this.Location.Y));}
Form Hijo
public void setLocation(Point pos)
{
this.location = pos;
}
Ah, si ves que no "te hace caso" de esta manera, intenta poner en el form hijo WindowsDefaultLocation = Manual. Luego antes de mostrar el form hay que llamar a setLocation.
Bueno, a ver si te sirve.
Saludos!