Is it possible to set specific posts to show first in a query?

well you meta_query excludes all the non xyz results, so you would have to adapt that part, that it also includes all the other ones.

in the example bellow, the query calls for xyz and for those, who dont have that field set at all. resulting in 3 meta queries, one for price, one for xyz and one for the others. all these are important for the proper sorting. not sure if it works out of the box, but its a start. remember to set your cpt..

$args = array(
  'post_type' => 'your_cpt',
  'meta_query' => array(
    array(
      'relation' => 'AND',
      'price' => array(
        'key' => 'price',
        'compare' => 'EXISTS',
      ),
      array(
        'relation' => 'OR',
        'xyz_realty' => array(
          'key' => 'office_name',
          'compare' => 'LIKE',
          'value' =>  'XYZ Realty'
        ),
        'other_realty' => array(
          'key'       => 'office_name',
          'compare'   => 'NOT EXISTS',
        ),
      )
    ),
  ),
  'orderby' => array(
    'xyz_realty' => 'ASC',
    'other_realty' => 'ASC',
    'price' => 'DESC'
  )
);