Хорошим способом будет держать структуру данных и ее заполнять из базы
а грид уже из структуры данных
по OnSelectCell берете из структуры данных ключ к таблице и перемещаетесь по ней.
Но так делать тоже не очень гут. Если мы работаем со структурами данных, по ним и ходим
вот вообще ничего не менялось в стринггриде в этой конкретно строке
StringGrid1.Cells[ACol, ARow] := myString;
перед этим нужно только добавить в грид нужное количество колонок