you could create two category templates;
each one with two loops; differently added custom query:
rough sketch only:
category-1.php
/*category1 loop*/
normal loop
/*category2 loop*/
some code to save the original query;
$args = array('category__in' => array($cat2_id),
'paged' => get_query_var('paged')
);
$loop2 = new WP_Query($args);
if( $loop2->have_posts() .........etc
some code to restore the original query;
category-2.php
/*category1 loop*/
some code to save the original query;
$args = array('category__in' => array($cat1_id),
'paged' => get_query_var('paged')
);
$loop1 = new WP_Query($args);
if( $loop1->have_posts() .........etc
some code to restore the original query;
/*category2 loop*/
normal loop
so whenever someone clicks a cat1-permalink, it will use category-1.php and show two loops;
anytime someone clicks a cat2-permalink, it will use category-2.php and show two loops (which look the same as the other two loops)
the result should be more-or-less the same apart from pagination, if the cats have a different amount of posts.