How to display posts via custom taxonomy terms using checkboxes?

You can run a query with a tax_query parameter which excludes certain taxonomy terms. See this answer.

As for where to run the query, you can either have a form that submits to the page it’s on (you’ll need to locate an appropriate template file being called for that page or create a custom one) and then, once the page refreshes, process your form inputs, run your query, and show results.

Alternatively, you can run your query on the server side and call it via AJAX. For more info on that you can start here (it talks about plugins but you don’t really need to create a plugin, you can always put your PHP code into functions.php inside the theme directory) or just search around for tutorials on implementing AJAX in WordPress.

EDIT: as per your comment, here’s some code to get value from checkbox on the page. It’s untested, intended only as a guide. Notice that the form submits to itself, we achieve it with putting the page URL into the form’s action parameter.

<?php
$cb_city = '';
if(isset($_POST['city']) && $_POST['city'] != '') { // if form was submitted we can get value
    $cb_city = $_POST['city'];
}
?>
<form action="<?php echo get_permalink(); ?>" method="POST">
    <label>Your label
        <?php
            $checked = "";
            if( !empty($cb_city) ){ // pre-populate checkboxif it was checked on form submit
                $checked = "checked";
            }
        ?>
        <input <?= $checked; ?> type="checkbox" name="city" id="city" value="1"/>
    </label>
    <button type="submit" class="btn-submit">Submit</button>
</form>