Define 'session'
For the second part I think you'll need to use variables to capture all song titles played during the current 'session' so that you can then flag them in the expression column. Create a smartlist with the rules:
[=save(0,var_title_played[name])1]=1 [Last Played]=<1d [=save(1,var_title_played[name],1)]=1
You would change the [last played] comparison to be whatever your 'session' length is.
Then in your playlist call the smartlist to set the variables.
You could then put
load(var_title_played[name])
Into the expression column and it would put a 1 against all tracks with same title played during the session.
Problems:
If the track name has extra text on it, eg (12" remix), (radio edit), whatever, then the matches won't be made. You'd need further logic to clean up track names to isolate the actual title minus the postfixes.
MC doesn't auto-refresh after tracks are played so you would need to refresh the results each time a track is played to keep the tracking up to date.