how to build & populate an array available to all scripts on all objects?

Is this possible, and how? and are their any memory or performance issues for doing it?

Although it may not be the best choice software-design-wise, the most straightforward solution is probably to use a public static variable, as it will be accessible globally throughout your code (generally speaking).

Note that static variables can't be exposed directly via the inspector, so you'll most likely need to create and populate the array via code (e.g. in the Awake() or Start() function of a script).

And no, there shouldn't be any memory or performance issues to speak of (not that I can think of anyway).