This is not possible to do with CSS Selectors Level 3 (at least, without CSS hacks, extra markup, or JavaScript).
The draft CSS Selectors Level 4 proposes the :nth-match() pseudo-class, which would do what you want:
:nth-match(2n+0 of .type-2) {margin-right:0;}
:nth-match(3n+0 of .type-3) {margin-right:0;}
:nth-match(4n+0 of .type-4) {margin-right:0;}
This is not yet implemented by any browser that I know of, but there is a bug filed to implement it in Chrome.