I think you have the avaibility to do this now. Maybe I’m wrong…
In your layouts, you don’t separate the layout for the head of the page.
And the layout of a page include the head section with reference of the first image of the post.
I think you can find (in the template) the first image with GetResources.
It’s up to you what you put in the template that generates your HTML head element.
This has, afaict, nothing to do with Hugo per se, since Hugo does not provide the HTML template. Instead, look at the theme you’re using (and which you may modify to your own taste).
I meant that as Hugo uses template to render HTML pages, and as you want to have a relation to the first image of a post in the head, you can in the template put the head HTML coding with something like : <link rel="preload" href="/image.webp" as="image" fetchpriority="high">
but instead of /image.webp a Hugo template code to determine the file. In order to do this you can use .GetRessources or .Resources.GetMatch.