A heavy handed approach would be to use Version Control (SVN, GitHub, etc) to version control your Metadata Objects (Objects, Page Layouts, etc) in your Sandbox environment. You would then need to use Change Sets or the Force.com IDE to push your changes from Sandbox into Production. But first you would need to checkin your latest version of the metadata into your version control.
You would also have to put into place operational measures to ensure deployments go from Sandbox -> Production via a Change Control process and that changes are checked in / out of the Version Control via the Eclipse IDE and your version control plugin.
This would come at the cost of speed obviously. You wouldn't be able to make declaritive changes on the fly anymore in Production. But you would have a auditable history of all your changes and descriptions of your changes.
Then, depending on the Version Control Software, you could expose the audit history via a Web Service to your client that queries your Version Control software, not SFDC directly.
Solves your problem. Provides detailed audit history of metadata changes.
Heavy Handed, slows down your deployment time.
Requires additional setup of Version Control Software, as well as interface for Web Service to that Version Control Software for the client.
Again, heavy handed I know. But its feasible and would solve your issue. Many large scale SFDC implementation use version control to control their metadata.