If you have a Mxit service using the Mobi-Portal API, the User ID is provided in the X-MXit-USERID-R HTTP header of each request. With the .NET SDK, it is included with each request / message packet.
If you're not using either of the two, there will is an API call to do the Mxit Id -> UserId lookup in the User API.
The token has a lifetime (which is specified in the "expires_in" field of the OAuth response), and the token can be re-used for this amount of time. They are currently set to 1 hour for an Access Token, and 1 day for a Refresh Token. As an aside, a new OAuth2 token does not have to be requested for every call to the Messaging API.