>but obviously this only works for 1 row. My stored procedure could potentially be creating 800+ rows
Perhaps I've misunderstood your problem but I think this statement isn't correct. Each time you call the stored procedure to get the next OBJECTID for a feature class it updates the table storing the OBJECTIDs so that the next time you call it the OBJECTID will always be one higher. Modify your stored procedure to add (for SQL Server):
DECLARE @Object_ID int
DECLARE @Num_IDs int
EXEC dbo.i51_get_ids 2, 1, @Object_ID OUTPUT, @Num_IDs OUTPUT
where you'd replace the 'i51' with the correct value for your feature class from the SDE_table_registry, and then use the @Object_ID variable in your INSERT statement.
Hope this helps.