Is there a way to customize the approval process, for example the number of approvals, or require specific approvals for subdirectories in the codebase?
Yes, if you choose the slightly more complex toml format for your MAINTAINERS file you can define approvers, approver subgroups and tweak a bunch of different variables.
I'm not sure if GitHub Enterprise supports protected branches, since the feature is still considered experimental but it should definitely be possible. I'll be posting a Docker image to the index in the coming weeks allowing you to run your own instance, hopefully that will include GHE conntors