Is it possible to change the system locale programmatically when running as device owner (cf Android Enterprise provisioning) ?
Not really.
You can add an EXTRA_PROVISIONING_LOCALE to the QR code or NFC tag used to provision the device. It is used as part of the provisioning process, not by the device owner.
On November 1, 2021 it has been announced on the Enterprise EMM Community that this extra is not supported anymore due to change in Android 12 (and that there is currently no other way the set a locale)