We had a similar problem where an asynchronous postback would reset the user to the top of a very long page. We resolved it after finding the following code at: http://forums.asp.net/t/1047815.aspx
We inserted the following javascript on our page after the ScriptManager on the page.
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<script type="text/javascript">
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_beginRequest(beginRequest);
function beginRequest() {
prm._scrollPosition = null;
}
</script>
This made it so the postback did not reset the users scroll position when the postback returned.
I'm not sure if this is exactly the problem that you are experiencing. You could also take a look at this post: http://stackoverflow.com/questions/616210/reset-scroll-position-after-async-postback-asp-net which discusses a more robust method of setting the scroll position after a postback occurs.