Хотя верно, что последовательные вызовы animate создают видимость, которую они выполняют одновременно, основная истина заключается в том, что они представляют собой отдельные анимации, работающие очень близко к параллели.
Чтобы анимация действительно работала одновременно, используйте:
$(function() {
$('#first').animate({..., queue: 'my-animation'});
$('#second').animate({..., queue: 'my-animation'}).dequeue('my-animation');
});
Дальнейшие анимации могут быть добавлены в очередь 'my-animation', и все они могут быть инициированы при условии их последней очереди анимации.
Ура,
Anthony