Hi @jmackesy
You will have to use Granite validator to apply this check. I have created a sample code for the same functionality.
Follow these steps:
1. Create clientlibs with category "cq.authoring.dialog"
2. Add this js
(function ($) {
'use strict';
$(window).adaptTo("foundation-registry").register("foundation.validation.validator", {
selector: ".custom-word-limit",
validate: function(element) {
var elementValue = element.value;
var wordLimit = element.dataset.wordLimit;
if(elementValue && wordLimit && elementValue.split(' ').filter(function(n) { return n != '' }).length > wordLimit){
return "Word limit for the field is " + wordLimit;
}
}
});
}(Granite.$));
3. Add granite:class property with value "custom-word-limit" to the textfield where you want to apply this word limit check like this:

4. Then add a "granite:data" node under the textfield of type nt:unstructured and add property word-limit = 100. Change this number to any number of which you want to apply the limit for this particular field like this

5. The author will get message like this

Try this and let me know if it works for you.
Thanks,
Nupur