Прикола ради слегка модифицировал скрипт. Во-первых, можно избавиться от множественных new Option после каждого изменения, во-вторых, в моем варианте сохраняются первоначальный текст, (если от отличается от просто циферок)
<script type="text/javascript">
(function() {
var select2 = document.getElementsByTagName('select')[1];
var optionStore = [];
for( var i = 0; i < select2.options.length; ++i )
optionStore[i] = select2.options[i];
var select1 = document.getElementsByTagName('select')[0];
select1.addEventListener('change', function() {
var i = this.selectedIndex
select2.options.length=0
for (var k=0; k<12-i; k++)
select2.options[k] = optionStore[k];
});
} )();
</script>