Grouping items arbitrarily in Views
I think the easier and simpler solution would be to create a custom block from your custom module using hook_block_info and hook_block_view.
By using these hooks, your block will be listed in the block administration page - admin/structure/block.

&lt;?php
    /*
     * Implementation of hook_block_info()
    */
    function mymodule_block_info() {
        $blocks['yourblock'] = array(
        'info' =&gt; t('Your Module Name'),
        'cache' =&gt; DRUPAL_NO_CACHE
        );
        return $blocks;
    }
    /*
     * Implementation of hook_block_view()
    */
    function mymodule_block_view($delta = '') {
        $block = array(); # Declare array

        switch ($delta) {
            case 'yourblock' :         
                // Block View
                $block['subject'] = 'Your Block Title';
                $block['content'] = _mymodule_taxonomy_content();
            }
        }
        return $block;
    }
    /*
     * Create block content as you need
    */    
    function _mymodule_taxonomy_content( ) {
        $result = $query = db_select('taxonomy_term_data', 't')
                            -&gt;join('taxonomy_vocabulary', 'v', 't.vid = v.vid')
                            -&gt;condition('v.machine_name', 'your_tag_machine_name')
                            -&gt;orderBy('t.tid')
                            -&gt;execute();    
        $content = '';
        foreach ($result as $term) {
            // you now have $term['vid'], $term['name'], etc. here
            // loop and build conditions here to suit your need
            // Item 1
            // Item 2 &amp; 3  [linked accordingly: taxonomy/term/2+3] 
            // For example,
            // $content .= l($term['name'], 'taxonomy/term/'.$term['vid']); 
            // This is up to you.
        }

        return $content;
    }