The easiest way would be to go through a stored procedure for all writes to this table-- you could enforce restrictions in the stored proc's logic. You can GRANT different rights to the stored proc vs. the underlying table, so that your application's users can only make changes via the sproc. See http://www.sommarskog.se/grantperm.html
You could also probably create a view and do writes through the view, although I've never tried this approach before so it may not work.
A trigger may work too, although triggers tend to introduce additional complexity into apps-- so I generally like to avoid them.
The core element of any of these solutions is that nothing is foolproof-- a determined user with sufficient privileges can change what he wants. But as long as you can constrain your app to a particular user (or set of users), and you can trust your high-privilege users to not mess things up using ad-hoc queries, then you're probably OK.
Of course, you also need to change your schema so that, however you choose to enforce restrictions, your code can can know what rows to restrict. The "additional column" or "additional table" approaches recommended in other answers are two sensible options for this additional schema. The "additional table" approach seems theoretically cleanest to me, but might result in sub-optimal query plans since every query would require a UNION across the two. It's the kind of thing you'd want to test before using.