There is no difference. Three quotes from the documentation:
These SQL-standard functions all return values based on the start time
of the current transaction:
transaction_timestamp() is equivalent to
CURRENT_TIMESTAMP, but is
named to clearly reflect what it returns.
now() is a traditional PostgreSQL equivalent to
Bold emphasis mine.
now() do exactly the same.
CURRENT_TIMESTAMP is a syntactical oddity for a function, having no trailing pair of parentheses. That's according to the SQL standard.
If you don't declare a column alias for a function call in an SQL statement (where one is required), the alias defaults to the name of the function. Internally, the standard-SQL
CURRENT_TIMESTAMP is implemented with
now(), and that shows when you look at the default column alias.
transaction_timestamp() does the same, but this one is a proper Postgres function, so the default alias
transaction_timestamp is assigned.
Careful when working with JDBC (like SQL Fiddle does). Unlike psql or pgAdmin it can't handle multiple columns with the same name in the result set and only returns the first one for each set ...