For the sake of the challenge, it could be done with the FreeBSD `env` or with GNU env >= 8.30 (already assumed by the OP) in a shebang:
#! /usr/bin/env -S sh -c 'exec awk -f "$0" -- "$@"'
BEGIN { for(i = 1; i < ARGC; i++) print ARGV[i] }
./myscript -h 1 2 3
-h
1
2
3
It doesn't mean that it's a good idea, though.
You could try this, instead:
#! /bin/sh
BEGIN { 2>"/dev/null"
exec awk -f "$0" "--" "$@"
}
BEGIN { for(i = 1; i < ARGC; i++) print ARGV[i] }
This assumes that you don't have a `BEGIN` command in your `PATH`.