To reproduce:
public Form1()
{
    InitializeComponent();
    for (int i = 0; i < 10; i++)
    {
        this.radGridView1.Columns.Add("Col" + i);
    }
    for (int i = 0; i < 8000; i++)
    {
        GridViewRowInfo row = radGridView1.Rows.NewRow();
        foreach (GridViewCellInfo cell in row.Cells)
        {
            cell.Value = "Data" + row.Index + "." + cell.ColumnInfo.Index;
        }
        radGridView1.Rows.Add(row);
    }
    GridViewTemplate childTemplate = CreateChildTemplate();
    this.radGridView1.Templates.Add(childTemplate);
    childTemplate.HierarchyDataProvider = new GridViewEventDataProvider(childTemplate);
    this.radGridView1.RowSourceNeeded += radGridView1_RowSourceNeeded;
}
private void radGridView1_RowSourceNeeded(object sender, GridViewRowSourceNeededEventArgs e)
{
    for (int i = 0; i < 10; i++)
    {
        GridViewRowInfo row = e.Template.Rows.NewRow();
        row.Cells["Name"].Value = "Name" + i;
        row.Cells["ProductNumber"].Value = "ProductNumber" + i;
        e.SourceCollection.Add(row);
    }
}
private GridViewTemplate CreateChildTemplate()
{
    GridViewTemplate template = new GridViewTemplate();
    template.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill;
    GridViewTextBoxColumn namecolumn = new GridViewTextBoxColumn("Name");
    GridViewTextBoxColumn productNumberColumn = new GridViewTextBoxColumn("ProductNumber");
    template.Columns.AddRange(namecolumn,
        productNumberColumn);
    return template;
}
private void radButton1_Click(object sender, EventArgs e)
{
     this.radGridView1.GridNavigator.SelectLastRow();
}
Workaround: navigate the vertical scrollbar to the last row before calling the SelectLastRow method:
private void radButton1_Click(object sender, EventArgs e)
{
    this.radGridView1.TableElement.RowScroller.Scrollbar.PerformLast();
    this.radGridView1.GridNavigator.SelectLastRow();
}