StartUpPosition менять можно только будучи в IDE, в runtime его менять не получится, так описано.
Но нужно позарез его включать или отключать в рантайме.
Или самому расчитывать отрисовку окна в зависимости от CenterOwner, т.е. в зависимости от положения окна, вызвавшего это окно. Но как самому отрисовать, если Owner находится например в каком либо углу?