I think he's saying that they allow you to do concurrency, but not parallelism. Those are two different things.
Green threads also allow for parallelism, if they're scheduled onto more than one executor.
I think threads are a bad abstraction for doing parallelism personally, though. Programs designed to run in parallel should be deterministic, unless they need concurrency for some other reason. I think trying to shoehorn parallel programming into Python's threads isn't necessarily the best approach.
As far as I'm concerned, if I'm using threads and they happen to get scheduled on to multiple cores, then that's a nice optimization, but isn't necessary for what I use threads for.