How to position more than one item over an image in a Gutenberg WordPress block theme

You would do this with a stack block and 2 rows.

In WP v6.1 and Below

The missing part though, as that because the cover block does not use flex layout like the group block does, there’s no way to put the extra height in that you need to separate the menu from the title.

So instead, insert a spacer block between the 2 rows:

enter image description here

<!-- wp:cover {"url":"https://example.com/wp-content/uploads/1/1901/1/example.jpg","id":26,"dimRatio":50,"align":"full"} -->
<div class="wp-block-cover alignfull"><span aria-hidden="true" class="wp-block-cover__background has-background-dim"></span><img class="wp-block-cover__image-background wp-image-26" alt="" src="https://example.com/wp-content/uploads/1/1901/1/example" data-object-fit="cover"/><div class="wp-block-cover__inner-container"><!-- wp:group {"align":"full","layout":{"type":"flex","orientation":"vertical","verticalAlignment":"space-between","justifyContent":"stretch"}} -->
<div class="wp-block-group alignfull"><!-- wp:group {"layout":{"type":"flex","flexWrap":"nowrap","justifyContent":"right"}} -->
<div class="wp-block-group"><!-- wp:paragraph -->
<p>I was going to be a menu but I changed my mind</p>
<!-- /wp:paragraph --></div>
<!-- /wp:group -->

<!-- wp:spacer {"height":"226px"} -->
<div style="height:226px" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->

<!-- wp:group {"layout":{"type":"flex","flexWrap":"nowrap"}} -->
<div class="wp-block-group"><!-- wp:heading -->
<h2 class="wp-block-heading">I'm a heading</h2>
<!-- /wp:heading --></div>
<!-- /wp:group --></div>
<!-- /wp:group --></div></div>
<!-- /wp:cover -->

WP v6.2+

v6.2 lets use drop the spacer block by setting a minimum height on the stack block!

enter image description here

enter image description here

<!-- wp:cover {"url":"https://example.com/wp-content/uploads/1/1901/1/example.jpg","id":26,"dimRatio":50,"align":"full"} -->
<div class="wp-block-cover alignfull"><span aria-hidden="true" class="wp-block-cover__background has-background-dim"></span><img class="wp-block-cover__image-background wp-image-26" alt="" src="https://example.com/wp-content/uploads/1/1901/1/example.jpg" data-object-fit="cover"/><div class="wp-block-cover__inner-container"><!-- wp:group {"align":"full","style":{"dimensions":{"minHeight":"600px"}},"layout":{"type":"flex","orientation":"vertical","verticalAlignment":"space-between","justifyContent":"stretch"}} -->
<div class="wp-block-group alignfull" style="min-height:600px"><!-- wp:group {"layout":{"type":"flex","flexWrap":"nowrap","justifyContent":"right"}} -->
<div class="wp-block-group"><!-- wp:paragraph -->
<p>I was going to be a menu but I changed my mind</p>
<!-- /wp:paragraph --></div>
<!-- /wp:group -->

<!-- wp:group {"layout":{"type":"flex","flexWrap":"nowrap"}} -->
<div class="wp-block-group"><!-- wp:heading -->
<h2 class="wp-block-heading">I'm a heading</h2>
<!-- /wp:heading --></div>
<!-- /wp:group --></div>
<!-- /wp:group --></div></div>
<!-- /wp:cover -->

Flex controls for justifying and direction would be very nice on the cover block though, especially with the minimum height controls coming in WP 6.2, you should head to the Gutenberg GitHub repository and open an issue for that if one isn’t already open.