Here's a way to turn one single list into several sequential lists. These can easily be laid out as columns with CSS. The order of items is down each column first, rather than across.

To use this snippet, find where theme_item_list is being used (such as your Views preprocessor function) and replace it with the code here.

// Most calls to theme_item_list() build up an array of $items...
  if ($items) {
   // ... and then check if it has any elements.
   // This is where we do things differently.

    // The number of columns. Change this value to suit.
    $columns = 3;
    
    $item_count = count($items);
    // Items per column is the integer part of the fraction of items divided by columns.
    // Surplus is the remainder, ie the items we still have to fit in.
    // Example: 8 items, 3 columns: result is 2, surplus is 2.
    $items_per_column = floor($item_count / $columns);
    $surplus = $item_count - ($items_per_column * $columns);
    
    // Debug statements: 
    //print $items_per_column;
    //print $surplus;
    
    for ($i = 0; $i < $columns; $i++) {
      $items_this_column = $items_per_column;
      // Surplus items are distributed in the first columns until there aren't
      // any more. This means the first columns are longer by one item.
      if ($surplus) {
        $items_this_column++;
        $surplus--;
      }
      //print $items_this_column;
      
      $output_columns[] = theme('item_list', array_splice($items, 0, $items_this_column));
    }
    
    $output = implode('', $output_columns);
  }