If you use this code, you will get the inserted row displayed in the correct position.
private void button1_Click(object sender, System.EventArgs e)
{
this.gridDataBoundGrid1.BeginUpdate();
DataRow dr = dt.NewRow();
dr[0] = "XXXXX"; //dt is the datatable
dt.Rows.InsertAt(dr,2);
dt.AcceptChanges();
this.gridDataBoundGrid1.EndUpdate();
this.gridDataBoundGrid1.Refresh();
}
BUT, this will not show your red new row tag because of the dt.AcceptChanges call. But without this call, the new datarow is not position so the grid can see it properly located in the data source.
Maybe you can use some other marker to get the red row flags. Maybe save a list of them or something.