How can I change the heading numbering for headings of different levels differently?

Use numbly.

#import "@preview/numbly:0.1.0": numbly
#set heading(
  numbering: numbly(
    "Top {1}:",
    "{1}.{2}.",
  ),
)

= First section
== Unterpunkt
== Zweiter Unterpunkt

gives

Top 1: First section
1.1. Unterpunkt
1.2. Zweiter Unterpunkt
1 Like