Create the above object, give it a sprite of the texture you want and stick it off screen on the room you want skinned. I use textures twice as big as the room and scale it at runtime so it looks nice in full screen. Play around with the scaling in the create event if you're going to use a different size texture. There's also code in the create event to skin your spikes. You can remove it if you want or if you decide to keep it in your sprite image should be a 4 frame animation in order Spike Up, Spike Right, Spike Down, Spike Left.
Notes and limitations...
As the object is coded now it creates the surface once and redraws it so if you have moving blocks you'll need to modify it to draw up the surface every time.
The object assumes that blocks will be placed on a 16 (or 32) pixel grid placing adjacent blocks offset by something else, like 8 pixels, will result in the outline being weird.
Also, gamemaker has rounding errors if you resize blocks more than once so if your outline sticks out into empty space it means the block has a resizing error and should be deleted and replaced or resized back down to 32x32 and then resized