Except for the next to last level all nodes are full, nothing to show. On the last level there are only leaves.
Only on the next to last level there can be non-full nodes, i.e. nodes with only one child. And there can be leaves. So your reformulation should be "X-1 nodes must be full or leaves."
Now it depends on the definition if the statement is true. If the last level must be filled from left to right, for example (this is the case if you implement the tree as an array), the next to last level looks like:
full full ... full (one possibly non-full) leaf leaf ...leaf
If another element is added, it must be a child of the non-full node and thus will make it full. If one element is removed, the non-full node will become a leaf.
As I said, the exact details depend on the exact definition of almost full binary tree. If the last level can be filled in an arbitrary manner, then the statement does not hold.