as luckily your main loop runs first, i could imagine collecting all post ids of the main loop into a gloabl array; and use this arry in the ‘post__not_in’ parameter of your sidebar queries.
here is a bit of information:
http://codex.ww.wp.xz.cn/The_Loop#Multiple_Loops_in_Action
esp. under here ‘Note for Multiple Posts in the First Category ‘
and this snippet:
<?php query_posts(array('post__not_in'=>$do_not_duplicate));
if (have_posts()) : while (have_posts()) : the_post();
update_post_caches($posts); ?>