Is it possible to change the structure of the HTML generated by the_content()? If yes, how? If not, is there a workaround?

You can use the_content filter, to literally filter the content into your structure.

Somthing like this

<?php
add_filter('the_content',function($the_content){
    // find blockquotes
    $regex = '/<blockquote>(.+?)<\/blockquote>([\n|$])/i';
    $blockquotes = preg_match_all($regex,$the_content,$matches);

    // remove blockquotes
    $main_content = preg_replace($regex,'',$the_content);

    // rebuild blockqoutes
    $my_blockquotes="";
    foreach ($matches[1] as $blockquote) {
        $my_blockquotes .= "<blockquote>{$blockquote}</blockquote>";
    }

    // rebuild content
    $new_content="";
    if (!empty($my_blockquotes)) {
        $new_content = "
        <div class="my-blockquotes">
            {$my_blockquotes}
        </div>\n";
    }
    $new_content .= "
    <div class="main-content">
        {$main_content}
    </div>\n";

    return $new_content;
});

but you’ll notice this still might feel a little hacky as you’re separating user-supplied content where unexpected user error can still happen. For example: line-breaks may be inconsistent between blockquotes.

You’d be better off creating a custom metabox and/or using post_meta to store these blockquotes individually, as meta data to the post. You can then throw them in before your content (with out parsing with regex) via the_content still, or you can edit your template files of your theme, or hook into another action in your theme.