Prepending the UUID with the tenant ID is a good approach. I would recommend a delimiter other than colon to avoid problems with how queries are parsed. A hyphen or underscore would be good choices.
If you are searching with CQL, you will have to use the full unique key for each row, but if you are using the Solr HTTP interface, you can add a "filter query" like &fq=id:tenantid-* which would filter out all rows but those for that tenantid.
Also, for multitenant, make sure that the tenants have to access Solr through an app that you provide that has a REST API which assures that they cannot override that filter query.
One Solr core could support millions of rows/documents. Whether that is enough for your app is up to you.
Finally, you get one core per column family, so you can create multiple column familiies, as long as the number of them is relatively small, like dozens or low 100's, but not thousands or more.
You could also do a hybrid and support some number of tenants per column family and then have multiple column families as well.