Most of the autograd logic (in particular, .grad field update) happens in cpp. And so out of the scope of nn.Parameter()   These get/setattr won’t be called when the autograd updates the field in cpp 
If the only part that writes is the end of the backward, a solution would be to use autograd.grad and do the copy into the .grad  field manually (with proper locking).
But I don’t think there is any way to do general locking on a Tensor. You will have to do it for each use one by one.