The upper a-arms used for all 67-68 Camaros and 69 Camaros with drum brakes and JL8 four-wheel disc brakes were the same design. The 69 J52 disc brake cars used the same basic part, but there were two holes added to the trailing side of the a-arm for mounting a support for the brake hose.
The lower a-arms used for the 1st-gen Camaros had small but noticeable differences for all three years. This was primarily due to changes in the location of the rubber bump stop which was used to cushion any contact with the frame upon full compression of the suspension. It is unknown why the location of the rubber bump stop changed each year.
For 68, a newly designed larger rubber bump stop was mounted (through two drilled holes) on the trailing side of the a-arm. The mounting bracket for the rubber bump stop (which had been in-line with the centerline of the wheel in 67) was removed and a newly designed metal contact pad for the rubber bump stop was mounted on the trailing side of the coil spring pocket on the frame.
For 69, the same rubber bump stop was moved to the leading edge of the lower a-arm and the corresponding metal contact pad on the frame followed suit to the leading side of the coil spring pocket. All service replacement a-arms included mounting holes for both the 68 and 69 positioning of the rubber bump stop.
Obviously, these holes are not relevant for the 67 application since the rubber piece is on the frame.
The 67 and 68 lower a-arms use welded-in nuts for the lower shock mount. For 69 and for all service replacement a-arms, the shock mounting nuts were attached by a J-clip, which simplified the nut installation and also allowed for easy replacement.