Though this is late, maybe it will help someone else.
You need to have setupadmin rights first, then run
GRANT ALTER ANY LINKED SERVER TO loginname
Now you will be able create or alter linked servers in SQL Server 2008
Now, for SQL Server 2012 - it's a different story.
USE master;
GRANT CONTROL SERVER TO loginname;
GO
USE master;
GRANT ALTER ANY LINKED SERVER TO loginname WITH GRANT OPTION;
GO
NOTE: "WITH GRANT OPTION" should likely be left off, unless you want this user to be able to GRANT these permissions