Параллельная загрузка скриптов с последовательным выполнением?
Если действительно хочется решения на чистом JS без использования каких-либо библиотек, то можно скачивать скрипты при помощи XMLHttpRequest и вставлять в DOM тело скрипта.
Пример::function fetch(url,callback){
    var req = new XMLHttpRequest();
    req.open("GET",url);
    req.onload = function(){
      callback(req.responseText);
   }
   req.send();
}

function insertScript(scriptBody){
   var script = document.createElement('script');
   script.innerText = scriptBody;
   document.body.appendChild(script);
}

var scripts = ["/first.js","second.js"];
var bodies = new Array(scripts.length);

scripts.forEach(function(script,index){
    fetch(script,function(body){
        bodies[index]=body;
        if(bodies.every(function(el){return el})) {
             bodies.forEach(insertScript);
        }
    });
})
Вот такая штука у меня в подвале, помимо синхронной загрузки скриптов из массива scripts, после загрузки вызываются  функции из массива scripts_cbvar scripts = ['/style/jquery-1.7.1.min.js','/style/jquery.boxy.min.js','/style/smspilot.js?v2.3'];
var scripts_head = document.getElementsByTagName('head')[0] || document.documentElement;

var scripts_cb = [];
function scripts_ready( callback ) {
	scripts_cb[ scripts_cb.length ] = callback;
}
function scripts_loaded() {
	
	scripts.splice(0,1);
	
	if (scripts.length > 0) {
		scripts_load();
	} else {
		for( var i = 0; i<scripts_cb.length; i++) {
			scripts_cb[i]();
		}
	}
}
function scripts_load() {
	var script = document.createElement('script');
	script.type = 'text/javascript';
	script.async = true;
	script.src = scripts[0];
	script.onload = scripts_loaded;
//	script.onerror = onerror;
	script.onreadystatechange = function () {
		var state = this.readyState;
		if (state === 'loaded' || state === 'complete') {
			script.onreadystatechange = null;
			scripts_loaded();
		}
	};
    scripts_head.insertBefore(script, scripts_head.firstChild);
}
window.setTimeout('scripts_load()', 50);