У меня нет времени, чтобы попробовать это, но DataGrid реализует интерфейс HasRows, а HasRows имеет, среди прочего, метод setVisibleRange. Вам просто нужно выяснить номер строки элемента, на котором вы хотите сфокусироваться, а затем установить видимый диапазон от этого числа n до n + 50. Таким образом, DataGrid будет сброшен, чтобы поместить этот элемент вверху (или около верха, если он находится в последних 50 элементах списка, поддерживающих DataGrid). Не забудьте перерисовать вашу DataGrid.
Вы уже смотрели на это? Если так, я был бы удивлен, что это не сработало.
О, и так как это один виджет, говорящий с другим, у вас, вероятно, есть настроенный обмен сообщениями и некоторые обработчики сообщений, так что когда пользователь взаимодействует с этим вторым виджетом и «выбирает» элемент, сообщение запускается на EventBus и обработчик этого сообщения исправляет DataGrid в соответствии с тем, что я описал. Я думаю, тебе придется сделать это самостоятельно.