What I want to do is do something like this:
Rate of apples on a yearly basis: rate_apples := 2,000,000 apples/year
Apples over 3 years: rate_apples * 3 years = 6,000,000 apples
Where it then calculates the total amount of apples for me using the unit I've defined.
But it seems I can only define a new unit in terms of SI-units.
Is there any workaround or tool I don't know of?
(real) Mathcad or Prime?
In Mathcad you can redefine the units that go with each of the predefined quantities (length=L, mass=M, time=T etc). In Prime I found no possibility to do that yet, but you can highjack a quantity for your purpose by defining a parallel unit. I't won't be as nice though.
You could (ab)use the quantity for substance. Assuming that, regarding apples, you're also going to deal with price, i wouldn't abuse the quantity for currency...
If you don't mind using (and can use) symbolics, then you could simply use "apple" (or "fox") as a symbol and let the symbolic engine carry out such manipulations as are needed. If you need to get down and dirty in the numerics at some stage, then go for Terry's or Luc's method as well.
If you are a fee-paying PTC customer, then you might consider putting in a feature request for true, general-purpose System of Quantities support, as defined in the VIM (International Vocabulary of Metrology .. but in French). This would allow you to define whatever quantities you wanted, together with their relationships. Such a system would need a SoQ to SI conversion mechanism to support academic papers (which usually want SI only, with everything else being quantities of Dimension 1).