yes I think it would work, for example,
x = torch.randn(1, 3, 4) # 3 words, each represented by four size embedding
# if we had (batch, features, seq_len), then we transpose it to (batch, seq_len, features)
x

tensor([[[-0.0247, -0.0365,  0.0992,  0.8617],
[ 0.9550,  1.0243, -0.7017, -1.1300],
[ 1.2312,  1.0802,  0.3377,  1.8007]]])
y = nn.LayerNorm([4]) 
# if we do not want to normalize one word based on other word.
# normalize based on individual word representation
y(x)

tensor([[[-0.6720, -0.7037, -0.3385,  1.7142],
[ 0.9514,  1.0232, -0.7654, -1.2092],
[ 0.2275, -0.0618, -1.4847,  1.3190]]],
grad_fn=)
which is equivalent to result of,
((x.permute(2, 0, 1) - x.mean([2]))/(x.var([2], unbiased=False) + 1e-05).sqrt()).permute(1, 2, 0)