Monitoring the rows in a table
If you have all the logic that you want to check within your stored procedure, then storing the time "that it happened" would only be storing the time you actually checked the table. If you are executing this stored procedure every hour via an Agent job then you only know it happend withing that previous hour. 

Using a trigger on the inserts would provide a more detailed timestamp as to when the table went over your threshold.

Now for immediate notification I would likely look at SQL Agent Alerts. I don't work with triggers all that much, but would think you could do something similar to the following logic in the trigger:


Check row count of table
If over threshold use RAISERROR to generate event text (custom sys.message) to include your table name
Write entry to your monitoring table, with a timestamp


Now you would need to create a custom message using sp_addmessage (BOL), so you can use it with the RAISERROR. Then your SQL Agent Alert would just check for that message text. When the alert is fired (meaning it caught the message) you configure it to notify you by email.