Por los que están dentro del body no tendrás que preocuparte: el body onload o el window.onload no llegará hasta que no estén cargados, de manera que cuando esos eventos se produzcan esos js ya estarán cargados. El problema se reduce a los scripts que están fuera del body. Para ello podés determinar el fin de la carga con algo como esto:
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>test</title>
<script>
var scrs=['algo.js','algo3.js','algo2.js'];
var cargados=0;
function adjs(url){
sc=document.createElement('script');
if(sc.addEventListener)
sc.addEventListener('load',function(){cargados++},false);
else
sc.onreadystatechange=function(){
if(sc.readyState=='complete' || sc.readyState=='loaded')cargados++;
}
sc.src=url;
document.getElementsByTagName('body')[0].appendChild(sc);
}
function loadScript(){
for(var i=0;i<scrs.length;i++){
adjs(scrs[i]);
}
}
window.onload=function(){
loadScript();
var int=setInterval(function(){if(scrs.length==cargados){alert('todos cargados');clearInterval(int)}},200)
}
</script>
</head>
<body>
</body>
</html>
Como ves, en lugar de cargarlos como se haría habitualmente: <script src="algo.js"></script>, deberás sumar los scripts a cargar en el array scrs. De esa manera podrás controlar si cargaron o no.
En este caso es más o menos simple, ya que los diferentes navegadores nos dan herramientas para detectar la carga usando únicamente javascript (si fueran estilos css sería más complejo, porque tendríamos que usar javascript para algunos navegadores y XBL para otros)