In the time_entries table it is possible to identify when the "reported_hours" were reported and by whom, but is it also possible to identify when and by whom the "estimated_hours" were reported?
The estimated hours are stored on an issue. As each change of any issue attribute is stored as a journal, each change of the estimated hours (or any other field) can be traced through the respective journal entry. You can see this in the web interface in the issue itself.
From the API, you can get those details by requesting the journals along with an issue. See Rest_IssueJournals for details.