An in-place NTT is one where the butterflies operate on the data and return it to the place it was. A constant-geometry NTT is one where the butterflies access data in the same pattern and then the output is permuted in the same way. In this sense, an in-place NTT is one where the butterflies might have a variable pattern of access, but the permutation is the identity, or no-op; a constant-geometry NTT is one where the butterflies have identical inputs every time.
If you hold both of these to be true, you have a butterfly that operates on two input values (let's look at 1 and N/2 + 1, as our example), and then writes the output to the same slots, 1 and N/2 + 1. Then, you run it again, the butterfly again operates on the same data, and you write the output to the same place. Therefore, each value of the output of an in-place, constant-geometry NTT would only depend on two of the inputs, and at least half the outputs of the NTT depend on all of the inputs. In particular, the evaluation of the polynomial at any primitive Nth root of unity changes when you change any of the inputs, since the evaluation is $[\omega^i] \cdot [a_i]$
If you are doing this in software, you should use the in-place method. If you're doing it in hardware, you should probably use the constant-geometry scheme. If you're fighting the end of the vectorized Cooley-Tukey NTT loop in a highly vectored machine, you may just have to do some kind of transpose operation; you won't have a way around doing some kind of data movement. An in-place NTT has to follow the same pattern of butterfly geometries.