It's not possible out of the box, but it is fairly easy to achieve. Create a new class that inherits from Sitecore.Shell.Controls.RichTextEditor.EditorConfiguration and override the SetupStylesheets() method:
public class EditorConfiguration : Sitecore.Shell.Controls.RichTextEditor.EditorConfiguration
{
public EditorConfiguration(Item profile) : base(profile)
{
}
protected override void SetupStylesheets()
{
// if (user = X)
this.Editor.CssFiles.Add("/path/to/custom.css");
base.SetupStylesheets();
}
}
And then set the Rich Text Profile to use this new configuration type. Switch to core database and then go to Item /sitecore/system/Settings/Html Editor Profiles/Rich Text Default/Configuration Type and set the Type field to your new class. If your specific profile does not contain a Configuration Type item then either copy or create a new one, or set "HtmlEditor.DefaultConfigurationType" in config.
Rather than hard-coding the stylesheets, I suggest you define a set of "stylesheets" in settings somewhere in your content tree, and then restrict read access to them using security and permissions for different roles. Then you can simply read back a list of items, iterate and add them, e.g.

And then iterate the items in your SetupStylesheets() method.
protected override void SetupStylesheets()
{
var stylesheets = Sitecore.Context.ContentDatabase.GetItem("/sitecore/content/RTE-Stylesheets").Children.ToList();
foreach (var item in stylesheets)
{
this.Editor.CssFiles.Add(item["Stylesheet"]);
}
base.SetupStylesheets();
}
Since you restricted with permissions, only the stylesheets the user has access to will be returned and then added.