Is it possible?
Is it technically advisable?
That's subjective. Depends what you're trying to achieve.
Any gotchas or considerations?
Creating an account is zero-cost. A user could create multiple accounts and bypass any restrictions by spreading the balance across multiple accounts.
What would the API look like?
(I don't think you mean "API" here.) You'd have to code the smart contract to check the account balance of the recipient during any transfers. If the transfer would result in the balance exceeding the desired limit, the transaction would revert.