К сожалению, это не так просто, это зависит от того, виртуализирован ли ваш список или нет, который зависит от панели, которую он использует для визуализации своего содержимого. Для не виртуализирующегося списка можно установить положение вертикальной прокрутки, вызвав следующий метод в ScrollViewer, который является частью шаблона списка, где смещение указывается в пикселях.
ScrollViewer.ScrollToVerticalOffset(offset);
Для виртуализации вы можете вызвать следующий метод в VirtualizingStackPanel, где смещение - это местоположение списка (вы можете использовать двойное значение, то есть при прокрутке до 3,5 будет прокручиваться половина между индексами 3 и 4):
ItemsHostStackPanel.SetVerticalOffset(offset);
Чтобы узнать, как использовать этот код в контексте, посмотрите на элемент управления списком переходов, который я реализовал здесь:
http://wp7contrib.codeplex.com/SourceControl/changeset/view/72741#1502048