How to display a custom render element after an existing one?
Are you sure that code is correct?

$build['sessions'] = array(
  [
    "#markup" =&gt; "&lt;h2&gt;Sessies&lt;/h2&gt;",
    "content" =&gt; array(
      Drupal::entityManager()-&gt;getViewBuilder('node')-&gt;viewMultiple($nodes, 'speaker_sessions')
    )
  ]
);


It appears you are creating 2 arrays (array() and []). The given example hook_ENTITY_TYPE_view() looks like this: 

$build['mymodule_addition'] = array(
  '#markup' =&gt; mymodule_addition($entity),
  '#theme' =&gt; 'mymodule_my_additional_field',
);


The problem you are likely having is because of the nested array. If you apply a weight to the inner array, it will sink to the bottom of the outer array. You however still have no control over the position of the outer array. So either use a single array and add the weight there, or use the double array as it is, but apply the weight to the outer array.

But that conflicts a bit with your question because this is not a view mode, it is just an extra render element.