Using user variables you can simulate the row_number function.
Keep in mind the # assigned to each person could vary each time the query is run. Ordering by dateRegistered instead of name could help but if any insert, update or delete occurs which adds a new record, deletes one, or changes the dateRegistered to a time past, could change this numbering.
SELECT A.*, @rn := @rn+1 as Row
FROM aTable A
CROSS JOIN (Select @rn :=0) B
ORDER BY Name
Working SQL fiddle
Now if you want a permanent ID...
be sure to alter the update to change the order by to your date field if you want the ID's to be put in the order of the date, but it really shouldn't matter as a PK generated in such fashion (Surrogate key) has no meaning other than uniquely identify the record.
create table atable (
name varchar(10),
age int);
Insert into atable values
('Joe',30),
('Henry',24),
('Rick',55),
('Tom',19);
ALTER table atable add column ID int;
Update atable
INNER JOIN (
SELECT A.*, @rn := @rn+1 as Row
FROM aTable A
CROSS JOIN (Select @rn :=0) B
ORDER BY Name) B
on atable.Name = B.Name
and atable.Age = B.Age
set atable.id = B.Row;
ALTER TABLE atable MODIFY ID int NOT NULL primary key AUTO_INCREMENT;
Working fiddle