<p>How would I reset the primary key counter on a sql table and update each row with a new primary key?</p>

I would add another column to the table first, populate that with the new PK.
Then I'd use update statements to update the new fk fields in all related tables.
Then you can drop the old PK and old fk fields.
EDIT:
Yes, as Ian says you will have to drop and then recreate all foreign key constraints.