Get all factors of a word in linear time or constant time
No, there's no faster way to calculate all the "factors" (substrings) of $w$.  It takes $\Theta(|w|^2)$ space even to write down the list of all factors.  Any algorithm has to spend at least 1 unit of time per character of output.  So, any algorithm will have to take $\Omega(|w|^2)$ time; you can't do better than $O(|w|^2)$ time.

If you want to look for a faster algorithm, you'll need to look for a way to do it that doesn't involve calculating and storing all possible factors.  You might want to think about what operations you need to perform on these factors, and whether there's any data structure that can help you perform those operations faster (maybe a Merkle hash tree?  maybe a rolling hash?  hard to know, without knowing what you're trying to do with the factors).