Instead of a Web Control, you're likely better off creating a Generic Handler. This won't have the overhead that a web control has.
- In your handler, accept the clientID via querystring - this allows you to cache on a client level
- In your .master file, you can link to it < link src="MyCssHandler.ashx?ClientID=<%=ClientID%>" >
In your handler you have a few ways to work with the CSS.
- Just have a bunch of response.write for the css, and put in relevant client values
- Create an external CSS file with it's own special identifier - maybe <% %>. You could then load all the client specific values in a NameValuePair Collection, and then loop through the external CSS file, parsing <% NAME %> and replacing with the correct value. Then response.write this file. More complicated true but it allows for a hell of a lot cleaner CSS files