Get terms that don’t belong to current post with a shortcode

Put the term IDs of the current post terms in an array, and pass that as the exclude parameter to the get_terms function.

$this_post_terms = get_the_terms( $post->ID, 'your_custom_tax' );
$exclude = wp_list_pluck( $this_post_terms, 'term_id' );
$args = array(
    'exclude' => $exclude, 
);
$terms = get_terms( 'your_custom_tax', $args );