buenas,
en realidad no es que se ejecute antes. lo que sucede es que javascript es -por decirlo de una forma- asincrono con los procesos externos. es decir, aunque es cierto que javascript se interpreta linea a linea, cuando javascript abre una ventana el proceso de interpretacion no se detiene hasta que la ventana termine de procesarse. o sea, una vez ya la ventana este abierta el interprete continua con la proxima linea. en tu caso, el problema es el momento de invocacion. dicha funcion debes invocarla mediante algun evento generado por el usuario al escoger un valor del popup. el evento a escoger dependera del tipo de control que ofrezca en dicha ventana. por ejemplo, si es un <select>, debes usar onchange y dentro de este invocar la funcion haciendo referencia la ventana padre.
Código:
// asumiendo que la funcion esta declarada en el ambito global de la ventana padre ;
<select onchange="self.opener.ActualizaValores();">...</select>