setSelectionFromTop (int position, int y) привязывает список к позиции, выбирая элемент в позиции y и привязывая список к тому месту, где вершина выбранного элемента равна y пикселям сверху. Это обеспечит то, что вам нужно?
Я не проверял это, но кажется, что это в сочетании с onScrollStateChanged или AdapterView.OnItemSelectedListener дало бы вам прокрутку, щелкая ListView.
Надеюсь, это пригодится.