First of all, I fundamentally disagree with your analysis of other programmers as “secondary” if they are not the “head” programmer - that sets in place a really toxic work environment. The fact that things get “assigned” to you by the head programmer is just a really bad idea - ideally all programmer should be able to choose what to work on based on what they can specialize in, and then do that in a meeting with other programmers working on the project so they are able to discuss it, before their code gets written and reviewed by the team.
Secondly, in terms of pay for a “secondary” programmer as you are describing, there shouldn’t really be that much of a pay divide between the “head” and “secondary” programmers - it just sounds like one of them tells the other what to do, and that is the only difference. This is just my own personal ethics & opinions of course, but such similar roles should be paid essentially the same - and even then, it is still affected by a large multitude of factors.
Not only does this position sound a bit sketchy (mentioning the words “replaceable money making tool” only makes me wonder why it would be construed as such) but calling other programmers “secondary” to yourself and not giving them that much flexibility (from what it sounds like you’re saying) doesn’t really encourage me personally. I’d recommend you think a bit more about your management techniques before even getting started on payment.