First question: yes, it is possible to write a perlin noise shader if that's what you're asking. To fill a layer with perlin noise, you draw a square that covers the view area and set the shader for that draw.
Second question: sprite's positional (UV) data on a texture page can be retrieved with
sprite_get_uvs
. You'll have to feed the relevant bits to the shader through uniforms.
Here's a
good tutorial series on using shaders with GMS by TheReverend, in case you're interested.