It's possible, but that's a pretty bad way of solving this problem. You'll have to create a trigger that acquires an EXCLUSIVE lock on the table then checks the count() on the table before allowing a commit or, if the insert would add too many rows, doing a RAISE EXCEPTION to abort the transaction.
Two triggers, actually; a BEFORE INSERT OR DELETE trigger that does the LOCK TABLE ... IN EXCLUSIVE MODE and an AFTER INSERT trigger that checks the COUNT of the table and decides whether to raise an exception. A simple BEFORE trigger is insufficient, since it can't tell if an INSERT might add more than one row, so a multi-valued insert or INSERT ... SELECT might cause the limit to be exceeded.
Other sessions that want to update the table will have to wait until the transaction doing the INSERT finishes. If the app isn't designed for this it could easily cause deadlocks.
The app probably doesn't expect to get an error when it INSERTs into the sessions table so it might not deal with that gracefully. It's rather unlikely to give the user a neat "too many registrations" error.
I haven't written a sample trigger for this because I think it's an absolutely terrible idea to do this. If you want to set a limit on how many users can be registered in your SIP server, configure your SIP server appropriately. If there's no such config option, modify it to add one or use a different SIP server that does have one.