As far as I know, there is no way to fix a headliner. You will need to have it replaced. A professional trim shop will remove your OEM headliner from the backing board, clean up the OEM board and recover with new fabric. I think most good shops will be able to match the material 100%. I have paid about $250 to have this done with OEM fabric. If you live in the DC metro area I can provide you with the name of an extremely capable shop in Maryland.
The sunroof cars have a vinyl type headliner instead of fabric in the non sunroof cars. Might be a little difficult to match, some people have used the cloth in the sunroof cars as replacements.
93 Black on black sunroof #1835
04 Comp. Orange Coupe #348
93 Reef Blue SSP LX Coupe (SOLD)
91 Wild Strawberry Coupe (SOLD)
93 Teal and Black #1521 (SOLD)
93 Vibrant Red and Leather #3038 (SOLD)
04 Mystichrome Coupe #529 of #1010 (SOLD)
Looking at the pic it would appear that it is stretched and you can see a circle in the vinyl. I would check your sunroof weatherstrips, looks like a leak.
Leaky sunroofs ... one of the top three "build quality" issues with these cars. The other two being saggy map pockets and broken center console ash tray doors.
03 COBRA Black with VMP
93 COBRA Black #3754 (RIP)
89 GT Black/Scarlet Red (SOLD)
86 GT Bright Red/Gray (SOLD)
I know sunroofs had issues, but I've personally never had that issue. The fact that the vinyl on that particular car pulled back on the board isn't necessarily water either, simple age, or getting hot during the summer will do the same thing.