It seems that the following code example scrolls in the following way:
Internet Explorer 8: After postback the selected item is the first visible item.
Firefox: After postback the selected item is always visible (but might be the last visible item).
Chrome: After postback, the selected item might be hidden since the listbox scrolls to the top, as you say.
<asp:UpdatePanel ID="up1" runat="server">
<ContentTemplate>
<asp:ListBox ID="lb1" runat="server" Height="100px" AutoPostBack="true">
<asp:ListItem>A</asp:ListItem>
<asp:ListItem>B</asp:ListItem>
<asp:ListItem>C</asp:ListItem>
<asp:ListItem>D</asp:ListItem>
<asp:ListItem>E</asp:ListItem>
<asp:ListItem>F</asp:ListItem>
<asp:ListItem>G</asp:ListItem>
<asp:ListItem>H</asp:ListItem>
</asp:ListBox>
</ContentTemplate>
</asp:UpdatePanel>