Sorry, I should have been more clear, DB mirroring and Availability Groups will not do what you're asking. Their primary function is high availability and easy, quick failover, they cannot be used for secondary replicas that need to be modified. Both features always copy the entire database, so any versioning would have to exist on the primary.
Transactional replication is your best option and will offer a lot of flexibility. The technology is solid and optimized, even though it's not as shiny or easy as Availability Groups. You will need to plan, you will need to test, you'll need to monitor carefully in the beginning, and keep a close eye on it until you're comfortable.
Jonathan covers use cases here:
It's part of a series on replication that you should probably read, it's not many articles but he covers some important stuff. He discusses filtered replication a little bit, and also that you can tailor exactly which tables and columns are replicated. You'll need to read Books Online for all the specifics.
Keep in mind that if you are replicating a database that will have frequent schema changes, you will need to re-apply your replication settings with each deployment. I wouldn't disqualify replication on these grounds, but you can't ignore it and it's non-zero effort.
I also mentioned Change Tracking (probably isn't sufficient) and Change Data Capture. Paul Randal has an article on them:
CDC can definitely do what you want, you get all the flexibility you need, but you have to write the synchronization yourself. It can be entirely in T-SQL, stored procedures, but there's no automatic copying of changed data like replication has. I'm not sure whatever benefits CDC has over TR (if any) are worth the hassle.
I think the best thing you can do is just play with a test replication prototype. New DB (or use AdventureWorks as a base), set up Replication on it using the Wizard, just publish and subscribe a few tables and test latency and the monitoring tools. You can host the publisher, distributor, and subscriber all on the same instance if you want. Just do a minimal test to get a feel for it, then play a little bit with publishing only certain columns, and so on. Make sure to NOT enable or configure a real database for replication until you are sure you are ready to use it.