To take an example from the glTF spec you cited:
The stride, in bytes, between vertex attributes. When this is not defined, data is tightly packed.
The stride of an array is the number of bytes from the start of one element to the start of the next element. If that stride is the same as the byte size of an element, then the array is "tightly packed". This means that there is no space between elements in the array; the byte after one element is the first byte of the next.
What this is saying is that, if you don't specify a stride, then the stride will be computed to be the size of the element type in question.
Interleaved vertex attributes are not "tightly packed" with respect to each other. If you have positions and normals interleaved, the position array is not tightly packed because the byte after one position is not the first byte of the next position.
However, you could consider it to be "tightly packed" with respect to an aggregation of the vertex data as a whole. If the byte after one position/normal combination is the first byte of another position/normal combination, then this could be said to be a "tightly packed" array of position/normal aggregates.