What you're looking at here is called ownership chaining. https://technet.microsoft.com/en-us/library/ms188676(v=sql.105).aspx
If a user executes an SP which has an owner of dbo, which inserts data into a table who's owner is dbo, the insert will happen. It doesn't matter if the user has insert permissions or not, as the ownership is chained. this means you can have applications with only Execute permissions on a database (no read/write/etc), and function fine; as they select, insert, update and delete through the use of SPs.
In your case, the simple answer would be to not allow the user to execute SPs that insert data into tables, or do anything else you don't want the user to do.
Thom~
Excuse my typos and sometimes awful grammar. My fingers work faster than my brain does.
Larnu.uk