The reasons of such behavior is the following:
You cannot manage new node position during the call-back time, it is fixed by client-side code. Only node value, text, etc. This is one of call-back limitations. The FlyTreeView does not reload the whole treeview, but it loads a part of it - a single node - and places it in a selected (before callback) place.
The possible solution - is to raise a page postback after drop and place required node into required position.