It seems your speculation is correct. But i just tested in silverlight4 beta, it wont work.
There are two concern here.
As we know, control use a same static resource will share a same instance. So here , this usage maybe not very practical.
The header in the static resource was loaded before the datagrid. And it's an Framework element. So after it's loaded the parent value of it should be set. Apparently you can not set a control can only has one parent.