The BrickLink catalog has this option. List all parts, then click on "Year summary". There are 45510 parts in total. The list starts in 1950 (8 parts!), everything before that year is year "0". 2002 was the first year with more than 1000 parts, 2016 saw an impressive number of 3490 parts.
EDIT:
As pointed out in a comment, the entries in the BrickLink catalog contain all kinds of variants of the same shape. One example:
Brick 1 x 2 with Yellow Left Arrow and Black Border Pattern
Brick 1 x 2 with Yellow Down Arrow and Black Border Pattern
Brick 1 x 2 with Yellow Grille Pattern
Brick 1 x 2 with Black Grille Pattern
Brick 1 x 2 with White Grille Pattern
... and so on
It turns out that part descriptions are structured like this:
<shape description> "with" or "without" <details>
So all above items are "Brick 1 x 2" shape. I wrote a script that takes the csv-formatted BrickLink catalog, deletes all part descriptions from "with" or "without" onwards, and then deletes all duplicate lines.
Result: from the 45510 parts of the catalog remain 17236 entries. Looking at this list, I would say that this number is an upper limit to the number of distict shapes that have been produced. Maybe 10% have to be subtracted to get a good estimate.
Example: There are 52 types of Bricks left. There are some transparent bricks and "solid studs" that are not a shape of its own.
Brick 10 x 10
Brick 10 x 20
Brick 10 x 20 - Undetermined Underside Type
Brick 12 x 24
Brick 1 x 1
Brick 1 x 10
Brick 1 x 12
Brick 1 x 16
Brick 1 x 1 Transparent
Brick 1 x 1 x 3
Brick 1 x 1 x 5
Brick 1 x 1 x 5 - Solid Stud
Brick 1 x 2
Brick 1 x 2 Transparent
Brick 1 x 2 x 2
Brick 1 x 2 x 3
Brick 1 x 2 x 5
Brick 1 x 3
Brick 1 x 3 Transparent
Brick 1 x 3 x 5
Brick 1 x 4
Brick 1 X 4
Brick 1 x 4 Transparent
Brick 1 x 4 x 1
Brick 1 x 6
Brick 1 x 6 Transparent
Brick 1 x 6 x 5
Brick 1 x 8
Brick 1 x 8 Transparent
Brick 2 x 10
Brick 2 x 12
Brick 2 x 14
Brick 2 x 2
Brick 2 x 2 Corner
Brick 2 x 2 Transparent
Brick 2 x 2 x 3
Brick 2 x 3
Brick 2 x 3 Transparent
Brick 2 x 4
Brick 2 x 4 special (special bricks, test bricks and/or prototypes)
Brick 2 x 4 Transparent
Brick 2 x 4 x 3
Brick 2 x 6
Brick 2 x 6 x 3
Brick 2 x 8
Brick 4 x 10
Brick 4 x 12
Brick 4 x 18
Brick 4 x 4 Corner
Brick 4 x 6
Brick 8 x 16
Brick 8 x 8
This exercise gave me some insight at how many parts exist. Did you know, that there are 64 "dog" shapes, but only 8 "cat"?
I hope this answer did help somehow.
This is the method to manipulate the catalog (Linux environment):
First, load catalog (tab-delimited list) into Excel, and export the column containing the part names to an ASCII file.
Now delete everything including "with" from the lines:
awk '{if (index($0," with") != 0) {print substr($0,1,index($0," with")-2)} else {print $0} }' parts.csv > temp.csv
Now sort and remove duplicate lines:
sort -u temp.csv > unique_shapes.csv
That's it. In Linux, there are 1000 ways to do this. I like to use commands that are easy to follow. Now one could refine the method and delete other items that don't qualify as shapes, e.g. cloth or the above mentioned "transparent" bricks. There are endless possibilities :)
P.S.: Reading the question, I just realize that I missed the "per year" part. But this topic is far from over, anyway.