It should be ThreadSafe, each request creates a new HttpWebRequest instance for each Request, the only instance shared between requests is the CookieContainer. So if you’re not using Cookies, using multiple JsonServiceClient instances should behave the same using a singleton instance (since each creates a new WebRequest for each request).
Although HttpWebRequest uses a shared connection pool behind the scenes so it’s not as isolated as .NET’s Frameworks API suggests, where for instance if you don’t dispose external HttpWebRequest’ (e.g. created/used outside of the client libraries) it can hang all future HttpWebRequest’s until they’re disposed. The connection pool is configurable with System.Net’s ServicePoint and ServicePointManager classes.