В принципе вам нужен таймер на короткий период, который начинает обратный отсчет при возникновении события фокуса. Если до истечения таймера происходит другое событие, вы перезапускаете его, если нет, то выполняете логику OnFocus для любой последней ячейки.
Хитрость заключается в том, чтобы сделать его достаточно коротким, чтобы пользовательский интерфейс чувствовал себя отзывчивым, но достаточно длинным, чтобы избежать запуска нескольких вызовов на сервер.
К сожалению для вас, я не знаю, как вы это сделаете для ASP.NET, но я сделал это в Winforms для подобных ситуаций.