I've attempted such customizations unsuccessfully. My approach had been to place the Custom Action at the Organization object, but the configuration appears to get confused when linking to a field on Timesheets: $AllUsers.ReportedTimesheets.C_TestCounter
(It's a tease to hint at a feature that's not actually supported.)
If your 'locking' period was systematic, it could be accomplished via a Validation Rule on fields changing where $ReportedDate < Today() - Days(n).
The best mechanism I know of to affect multiple Timesheets is a Scheduled Workflow Rule; you could store multiple 'variables' as custom fields on Organization (or Project) and pull them when the SWR fires on each Timesheet---this doesn't seem like it will help you.
You might be able to leverage an 'Editable' Report to easily provide PMs with a single entry location (but copy and paste doesn't seem to be supported):