Я бы посоветовал установить атрибут позиции # top в абсолютное значение и использовать небольшой javascript, чтобы установить левый атрибут в значение # контейнера слева + половина ширины # контейнера - половина ширины # top.
т.е. после включения jQuery (не проверено):
$(document).ready(function(){
<br />
var topLeft = $("#container").css("left") + ($("#container").css("width")/2) - ($("#top").css("width")/2);
<br />
$("#top").css("left", topLeft);
<br />
});
В случае, если left равно нулю, как в приведенном вами примере, термин $ ("# container"). Css ("left") не нужен.
РЕДАКТИРОВАТЬ: Вы также должны быть уверены, чтобы установить атрибуты z-index двух div'ов соответствующим образом.