Vickel's answer is solvin my problem almost completely. The only thing that is a bit "ugly" with his solution is that there is no visual feedback during dragging on whether the current position is valid or not. So I went for the following solution:
beforeStop: function(event, ui) {
if(ui.placeholder.index() == 2) return false;
},
change: function(event, ui) {
if(ui.placeholder.index() == 2) ui.placeholder.addClass('invalid-position');
else ui.placeholder.removeClass('invalid-position');
}
With this solution I check the position of the placeholder every time it changes and I add a class invalid-position to the placeholder whenever it is in an invalid position and would be reverted if dropped there. Based on this invalid-position class I then style the placeholder to give visual feedback (e.g. with a red border or background when in an invalid position).