taxonomy terms, inverted

yes it’s because you sort them by name and in order ASCending.
because 'orderby' => 'name', 'order' => 'ASC' is the default setting.

try:
$term_names = wp_get_post_terms($post->ID, 'marcamodelo', array('fields' => 'names', 'orderby' => 'name', 'order' => 'DESC', ));

and it should be the other way around.

here you have documentation of which parameters are possible with orderby and order: https://codex.wordpress.org/Class_Reference/WP_Query#Order_.26_Orderby_Parameters

edit:
maybe you want it like this (not quite sure about the correct syntax in detail):

<div class="box2">
            <div class="faixa">
                <div class="marca">MARCA  <div class="marca">
                <?php 


                $parents = wp_get_post_terms($post->ID, 'marcamodelo', array('parent' => 0));

                if ( ! empty( $parents ) ) {
                //  echo $parents[0];
                 var_dump($parents);

    }

                ?>

                </div></div>
                <div class="modelo">MODELO  <div class="marca">

                <?php 

                $childs = wp_get_post_terms($post->ID, 'marcamodelo', array('fields' => 'names', 'parent' => $parents[0]->ID ));

                if ( ! empty( $childs ) ) {
                // echo $childs[0];
                  var_dump($childs);

    }

                ?>
                </div></div>  
            </div>