Well, if you use "built array", you cannot do it "in place", because the size of the array changes. The new array needs more space and thus LabVIEW needs to make a new copy in memory. There is no way around this.
Typically you would preallocate an array of fixed (and sufficient) size and then replace elements as needed. If you do this correctly in a shift regsiter, the operation is already "in place" and the "in place" structure will not give you any additional advantage. 🙂
Please tell us a bit more specifically what you are trying to do and what kind of memory problems you are having.