set a counter variable outside the foreach, check its value in each iteration and output corresponding markup, then increment it at the end for the next iteration.
<?php
$images = get_post_meta($post->ID, 'rw_postpage_images');
// set a counter
$image_counter = 1;
foreach ($images as $att) :
$src = wp_get_attachment_image_src($att, 'full');
$src = $src[0];
$image_path = thumbGen($src,80,80,"crop=1&halign=center&valign=center&return=1");
// check the counter
if( $imagecounter == 1 ) :
// output markup for first image
elseif( $imagecounter == 4 ):
// output markup for fourth image
elseif( $imagecounter == 9 ):
// output markup for ninth image
else :
// markup for all the others
?>
<div class="post_item">
<div class="small">
<img src="https://wordpress.stackexchange.com/questions/25176/<?php echo $image_path; ?>" alt="<?php the_title(); ?>" title="<?php the_title(); ?>" width="80" height="80"/>
</div>
</div>
<?php
endif;
// increment the counter
$imagecounter++;
endforeach;
?>
I put comments in there where markup would go to keep things shorter. just put whatever markup you want output there for that particular position similar to the last else:
block.