In my experience, any stains on the head liner are usually there to stay as it is difficult to clean. the material used in headliners typically do not stand up to much abuse,i.e. cleaning, rubbing things of that nature.
On the other hand, I know that there is a member that is a detailer on these pages, can't recall their SN though. Maybe they'll drop by this thread.
Mike