Worker threads with multiple instances
Am I likely to experience thread starvation?  Assume a low cpu count.

Thread starvation doesn't actually have to do with the physical CPU count.  If you have lots of worker threads, and a low CPU count, then it will just be slower to schedule all of those threads on the limited number of CPUs.  See Erik Darling's blog post Max Worker Threads: Don’t Touch That:

The thing is, all changing that setting does is help you not run out of worker threads. It doesn’t make queries run any better or faster. In fact, under load, performance will most likely be downgraded to Absolute Rubbish© either way.
What’s worse? Running out of worker threads and queries having to wait for them to free up, or having way more queries trying to run on the same CPUs? Six of one, half dozen of punching yourself squarely in the nose.

This becomes even more complex in your scenario with multiple instances on the same box (&quot;instance stacking&quot;).  Within a single instance, SQL Server uses cooperative scheduling to (try to) make sure that queries share CPU resources in an optimal fashion.
Unfortunately, one instance doesn't know anything about what the other instances are doing.  So each instance will compete for processor time &quot;un-cooperatively&quot; (generally called preemptive scheduling) due to queries running on the other instances.
Is this likely to be a problem for you?  It really depends on how busy the servers are.  But hopefully this answer helps to clarify the situation with regards to worker threads.