The Nodes collection does not have an InsertAt method, so you may just have to rebuild the collection in the order that you want things. To do so, you can save all the nodes, then clear the Nodes collection, and add the nodes back in the order that you want them. Here is some code.
private void button1_Click(object sender, System.EventArgs e)
{
//move treenode 3 to treenode 1
int targetIndex = 1;
int sourceIndex = 3;
TreeNode tn = treeView1.Nodes[sourceIndex];
TreeNode[] tnc = new TreeNode[treeView1.Nodes.Count];
int k = 0;
foreach(TreeNode t in treeView1.Nodes)
tnc[k++] = t;
treeView1.Nodes.Clear();
for(int i = 0; i < k; i++)
{
if(i == targetIndex)
{
treeView1.Nodes.Add(tn);
}
if( !tn.Equals(tnc[i]))
{
treeView1.Nodes.Add(tnc[i]);
}
}
}