The key part about a callback that it is determined at runtime, meaning it's dynamically called as a variable. In your case - it's static, meaning it's pre-determined what function is getting called.
This means the same wrapper function can be used to call any function - thus the wrapper function is reusable.
Imagine a telephone that when you pick up and hit dial, it only dials the same number. To change the number, you have to reprogram it. This is your example.
A function with a callback is like a telephone that you can control (from the outside <-- that's the key) which number is called. Now the phone is reusable for any phone number.
The essence of a callback function is to provide a way for you to add custom behavior to an existing functionality - without altering the existing functionality's code.